Flexibilní a výkonný programovací jazyk Visual Basic. NET, který je jedním ze speciálně vytvořených nástrojů pro vývoj aplikací pro platformu Microsoft. NET, umožňuje plně využívat všechny jeho schopnosti. Konkrétně komponenty oboru názvů System. Diagnostics umožňují interakci s procesy, protokoly událostí a čítači výkonu. Například můžete zavřít program z jazyka pomocí třídy Process.
Nezbytné
Microsoft Visual Studio
Instrukce
Krok 1
Importujte obory názvů System, System. Diagnostics a System. Threading. Přidejte následující řádky kódu na začátek modulu:
Dovozní systém
Importuje System. Diagnostics
Importuje System. Threading
To je jen pro pohodlí používání komponent spojených s těmito jmennými prostory.
Krok 2
Získejte data procesu, který má být uzavřen. Použijte objekt třídy System. Diagnostics. Process. Deklarovat proměnnou této třídy:
Dim oProc As Process
Poté použijte nějakou metodu k vyhledání požadovaného procesu.
Krok 3
Pokud je program, který bude třeba v budoucnu zavřít, spuštěn vyvíjenou aplikací, jednoduše uložte objekt vrácený metodou Start při spuštění:
oProc = Process. Start ("app.exe")
Krok 4
Pokud potřebujete zavřít proces se známým identifikátorem, použijte statickou metodu GetProcessById třídy Process k získání odpovídajícího objektu:
oProc = Process. GetProcessById (nID)
Kde nID je číselný identifikátor procesu.
Krok 5
Pokud jsou známy pouze některé z charakteristik cílového procesu, vyhledejte jej. Získejte seznam procesů spuštěných na místním počítači jako pole objektů třídy Process. Použijte metody GetProcesses (vrací všechny procesy) nebo GetProcessesByName (pouze procesy s daným názvem):
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Seznam objektů pole pomocí smyčky:
Dim oProc As Process
Pro každý oProc v aoAllProcesses
„akce na oProc
další
Projděte vlastnosti MainModule, MainWindowTitle, ProcessName atd. najít požadovaný objekt.
Krok 6
Pokuste se program ukončit odesláním zavírací zprávy do jeho hlavního okna. Zavolejte metodu CloseMainWindow objektu odpovídajícího cílovému procesu. V případě potřeby počkejte na dokončení aplikace voláním WaitForExit, například:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Tato metoda nezaručuje ukončení programu, protože zpráva o zavření okna se často zpracovává a lze ji ignorovat.
Krok 7
Po zavolání CloseMainWindow počkejte krátkou dobu, abyste zajistili ukončení programu. Použijte metodu spánku třídy Thread. Poté zkontrolujte stav procesu zkoumáním HasExited vlastnosti a pokud nedokončil, zavolejte metodu Kill:
Thread. Sleep (6000)
oProc. Refresh ()
Pokud tomu tak není oProc. HasExited Then
oProc. Kill ()
Konec, pokud
V případě potřeby můžete dotazovat na stav procesu ve smyčce a vydávat pravidelné výzvy uživateli k ukončení aplikace bez uložení dat. A to pouze v případě, že souhlasíte, že zavoláte zabít.
Krok 8
Uvolněte systémové prostředky po dokončení programu pomocí metody Zavřít:
oProc. Close ()
Krok 9
Abyste se vyhnuli neočekávaným chybám během provádění aplikace, umístěte celý algoritmus zavírání programu do bloku Try-Catch-End Try. V případě potřeby implementujte plnohodnotné zpracování výjimek pomocí diagnostických zpráv.