Prilagodljiv in zmogljiv programski jezik Visual Basic. NET, ki je eno od posebej ustvarjenih orodij za razvoj aplikacij za platformo Microsoft. NET, vam omogoča, da v celoti izkoristite vse njegove zmožnosti. Komponente imenskega prostora System. Diagnostics vam omogočajo predvsem interakcijo s procesi, dnevniki dogodkov in števci zmogljivosti. Na primer, lahko iz razreda Visual Basic zaprete program iz Visual Basic.
Potrebno
Microsoft Visual Studio
Navodila
Korak 1
Uvozite imenske prostore System, System. Diagnostics in System. Thading. Na začetek modula dodajte naslednje vrstice kode:
Sistem za uvoz
Uvozi System. Diagnostics
Uvozi System. Threeading
To je samo za udobje uporabe komponent, povezanih s temi imenskimi prostori.
2. korak
Pridobite podatke o postopku, ki ga želite zaključiti. Uporabite objekt razreda System. Diagnostics. Process. Navedite spremenljivko tega razreda:
Dim oProc kot postopek
Nato z neko metodo poiščite zahtevani postopek.
3. korak
Če program, ki ga bo v prihodnosti treba zapreti, zažene aplikacija, ki se razvija, potem preprosto shranite predmet, ki ga vrne metoda Start ob zagonu:
oProc = Process. Start ("app.exe")
4. korak
Če morate postopek zapreti z znanim identifikatorjem, uporabite statično metodo GetProcessById razreda Process, da dobite ustrezen objekt:
oProc = Process. GetProcessById (nID)
Kjer je nID številčni identifikator procesa.
5. korak
Če so znane samo nekatere značilnosti ciljnega procesa, ga poiščite. Pridobite seznam procesov, ki se izvajajo na lokalnem računalniku, kot niz predmetov razreda Process. Uporabite metode GetProcesses (vrne vse procese) ali GetProcessesByName (samo procese z danim imenom):
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Predmete matrike navedite z zanko:
Dim oProc kot postopek
Za vsak oProc v vseh procesih
'akcije na oProc
Naslednji
Preglejte lastnosti MainModule, MainWindowTitle, ProcessName itd. da poiščete želeni predmet.
6. korak
Poskusite zaključiti program tako, da v glavno okno pošljete sporočilo blizu. Pokličite metodo CloseMainWindow predmeta, ki ustreza ciljnemu procesu. Po potrebi počakajte, da se aplikacija konča, tako da na primer pokličete WaitForExit:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Ta metoda ne zagotavlja prekinitve programa, saj se sporočilo o zaprtju okna pogosto obdela in ga lahko prezremo.
7. korak
Počakajte kratek čas po klicu CloseMainWindow, da zagotovite, da se program konča. Uporabite metodo spanja razreda Thread. Nato preverite stanje postopka s preučitvijo lastnosti HasExited in, če se še ni končal, pokličite metodo Kill:
Navoj Spanje (6000)
oProc. Refresh ()
Če ne oProc. HasExited Potem
oProc. Kill ()
Končaj če
Po želji lahko stanje procesa anketirate v zanki in uporabniku periodično pošiljate pozive, naj prekine aplikacijo brez shranjevanja podatkov. In samo, če se strinjate s klicem Kill.
8. korak
Osvobodite sistemske vire po zaključku programa z uporabo metode Close:
oProc. Zaprite ()
9. korak
Da bi se izognili nepričakovanim napakam med izvajanjem aplikacije, postavite celoten algoritem za zapiranje programa v blok Try-Catch-End-Try. Po potrebi izvedite polnopravno obdelavo izjem z diagnostičnimi sporočili.