Fleksibilni i moćni programski jezik Visual Basic. NET, koji je jedan od posebno kreiranih alata za razvoj aplikacija za Microsoft. NET platformu, omogućava vam da u potpunosti iskoristite sve njegove mogućnosti. Konkretno, komponente prostora imena System. Diagnostics omogućuju vam interakciju s procesima, zapisnicima događaja i brojačima performansi. Na primjer, možete zatvoriti program iz Visual Basic-a pomoću klase Process.
Potrebno
Microsoft Visual Studio
Instrukcije
Korak 1
Uvezite prostore imena System, System. Diagnostics i System. Threading. Na početak modula dodajte sljedeće redove koda:
Sistem uvoza
Uvozi System. Diagnostics
Uvozi System. Threading
Ovo je samo radi praktičnosti korištenja komponenata povezanih s tim imenskim prostorima.
Korak 2
Pribavite podatke o procesu koji treba zatvoriti. Koristite objekt klase System. Diagnostics. Process. Proglasite varijablu ove klase:
Dim oProc kao proces
Zatim pomoću neke metode pronađite traženi postupak.
Korak 3
Ako se program koji će u budućnosti trebati zatvoriti pokrene aplikacija koja se razvija, tada jednostavno spremite objekt vraćen metodom Start pri pokretanju:
oProc = Process. Start ("app.exe")
Korak 4
Ako trebate zatvoriti postupak poznatim identifikatorom, upotrijebite statičku metodu GetProcessById klase Process da biste dobili odgovarajući objekt:
oProc = Process. GetProcessById (nID)
Gdje je nID numerički identifikator procesa.
Korak 5
Ako su poznate samo neke karakteristike ciljnog procesa, potražite ga. Nabavite popis procesa koji se izvode na lokalnoj mašini kao niz objekata klase Process. Koristite metode GetProcesses (vraća sve procese) ili GetProcessesByName (samo procese s danim imenom):
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Popis objekata niza pomoću petlje:
Dim oProc kao proces
Za svaki oProc u svim procesima
'akcije na oProc
Sljedeći
Prelistajte svojstva MainModule, MainWindowTitle, ProcessName itd. pronaći željeni predmet.
Korak 6
Pokušajte prekinuti program slanjem bliske poruke u njegov glavni prozor. Pozovite metodu CloseMainWindow objekta koji odgovara ciljnom procesu. Ako je potrebno, pričekajte da se aplikacija dovrši pozivom WaitForExit, na primjer:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Ova metoda ne garantira prekid programa, jer se poruka o zatvaranju prozora često obrađuje i može se zanemariti.
Korak 7
Pričekajte kratko vrijeme nakon poziva CloseMainWindow kako biste osigurali da se program završava. Koristite metodu spavanja klase Thread. Zatim provjerite status procesa ispitivanjem svojstva HasExited i, ako nije završen, pozovite metodu Kill:
Thread. Sleep (6000)
oProc. Refresh ()
Ako nije oProc. HasExited Tada
oProc. Kill ()
Kraj ako
Ako želite, možete anketirati status procesa u petlji, izdajući povremene upite korisniku da prekine aplikaciju bez spremanja podataka. I to samo ako pristanete nazvati Kill.
Korak 8
Oslobodite sistemske resurse nakon završetka programa metodom Close:
oProc. Close ()
Korak 9
Da biste izbjegli neočekivane greške tijekom izvršavanja aplikacije, postavite cijeli algoritam zatvaranja programa u blok Try-Catch-End Try. Po potrebi implementirajte punopravno rukovanje iznimkama s dijagnostičkim porukama.