Det flexibla och kraftfulla programmeringsspråket Visual Basic. NET, som är ett av de speciellt skapade verktygen för att utveckla applikationer för Microsoft. NET-plattformen, gör att du kan använda alla dess funktioner till fullo. I synnerhet kan komponenterna i Namnområdet System. Diagnostics låta dig interagera med processer, händelseloggar och prestandaräknare. Du kan till exempel stänga ett program från Visual Basic med hjälp av processklassen.
Nödvändig
Microsoft Visual Studio
Instruktioner
Steg 1
Importera namnområdena System, System. Diagnostics och System. Threading. Lägg till följande kodrader i början av modulen:
Importsystem
Importerar system. Diagnostik
Importsystem. Trådning
Detta är bara för att använda komponenterna som är associerade med dessa namnområden.
Steg 2
Få processdata för att stängas. Använd Klass. Diagnostics. Process-klassobjektet. Förklara en variabel av denna klass:
Dim oProc som process
Använd sedan någon metod för att hitta önskad process.
Steg 3
Om programmet, som kommer att behöva stängas i framtiden, startas av applikationen som utvecklas, sparar du bara objektet som returneras med Start-metoden vid start:
oProc = Process. Start ("app.exe")
Steg 4
Om du behöver stänga en process med en känd identifierare använder du den statiska GetProcessById-metoden i processklassen för att få motsvarande objekt:
oProc = Process. GetProcessById (nID)
Där nID är den numeriska identifieraren för processen.
Steg 5
Om bara några av målprocessens egenskaper är kända, sök efter den. Hämta listan över processer som körs på den lokala maskinen som en uppsättning objekt i processklassen. Använd metoderna GetProcesses (returnerar alla processer) eller GetProcessesByName (endast processer med det angivna namnet):
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Lista matrisobjekten med en slinga:
Dim oProc som process
För varje oProc i aoAllProcesses
åtgärder på oProc
Nästa
Gå igenom egenskaperna MainModule, MainWindowTitle, ProcessName, etc. för att hitta önskat objekt.
Steg 6
Försök att avsluta programmet genom att skicka ett nära meddelande till huvudfönstret. Ring CloseMainWindow-metoden för objektet som motsvarar målprocessen. Om det behövs väntar du på att ansökan ska slutföras genom att ringa WaitForExit, till exempel:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Denna metod garanterar inte att programmet avslutas, eftersom meddelandet om fönsterstängning ofta bearbetas och kan ignoreras.
Steg 7
Vänta en kort stund efter att ha ringt CloseMainWindow för att säkerställa att programmet avslutas. Använd sömnmetoden i trådklassen. Kontrollera sedan processens status genom att undersöka egenskapen HasExited och, om den inte är klar, ring Kill-metoden:
Thread. Sleep (6000)
oProc. Refresh ()
Om inte oProc. HasExited då
oProc. Kill ()
Avsluta om
Om så önskas kan du undersöka status för processen i en slinga och utfärda periodiska uppmaningar till användaren att avsluta applikationen utan att spara data. Och bara om du går med på att ringa Kill.
Steg 8
Frigör systemresurser när programmet är klart med metoden Stäng:
oProc. Close ()
Steg 9
För att undvika oväntade fel under applikationskörning placerar du hela programmets stängningsalgoritm i ett Try-Catch-End-testblock. Implementera fullfjädrad undantagshantering med diagnostiska meddelanden, om det behövs.