Fleksibilni i snažni programski jezik Visual Basic. NET, koji je jedan od posebno stvorenih alata za razvoj aplikacija za Microsoft. NET platformu, omogućuje vam potpuno korištenje svih njegovih mogućnosti. Konkretno, komponente prostora imena System. Diagnostics omogućuju vam interakciju s procesima, zapisnicima događaja i brojačima izvedbe. Na primjer, možete zatvoriti program iz Visual Basica pomoću klase Process.
Potrebno
Microsoft Visual Studio
Upute
Korak 1
Uvezite prostore imena System, System. Diagnostics i System. Threading. Na početak modula dodajte sljedeće retke koda:
Sustav uvoza
Uvozi sustav. Dijagnostika
Uvozi sustav. Nitanje
Ovo je samo radi praktičnosti korištenja komponenata povezanih s tim imenskim prostorima.
Korak 2
Pribavite podatke o postupku koji treba zatvoriti. Upotrijebite objekt klase System. Diagnostics. Process. Proglasite varijablu ove klase:
Dim oProc kao proces
Zatim pomoću neke metode pronađite traženi postupak.
3. korak
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")
4. korak
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 ih. Nabavite popis procesa koji se izvode na lokalnom stroju kao niz objekata klase Process. Upotrijebite 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")
Navedite niz polja 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 jamči prekid programa, jer se poruka o zatvaranju prozora često obrađuje i može se zanemariti.
7. korak
Pričekajte kratko vrijeme nakon što pozovete CloseMainWindow kako biste osigurali da se program završava. Upotrijebite metodu spavanja klase Thread. Zatim provjerite status postupka ispitivanjem svojstva HasExited i, ako nije završen, pozovite metodu Kill:
Navoj.spavan (6000)
oProc. Refresh ()
Ako nije oProc. HasExited onda
oProc. Kill ()
Završi ako
Ako želite, možete anketirati status postupka u petlji, izdajući povremene upite korisniku da prekine program 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 pogreš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.