Začať s používaním procesu. Začnite vo VB.NET

štart metóda proces objekt je možno jedným z najviac podceňovaných nástrojov, ktoré má programátor k dispozícii. Ako .NET spôsob, štart má sériu preťažení, čo sú rôzne sady parametrov, ktoré určujú presne to, čo metóda robí. Preťaženia umožňujú určiť takmer všetky parametre, ktoré by ste mohli chcieť pri spustení odovzdať inému procesu.

Čo môžete robiť Proces. štart je skutočne obmedzená iba procesmi, ktoré s nimi môžete použiť. Ak chcete zobraziť textový súbor ReadMe v programe Poznámkový blok, je to také jednoduché ako:

Proces. Start ( "ReadMe.txt")
alebo.
Proces. Štart („poznámkový blok“, „ReadMe.txt“)

Tento príklad predpokladá, že súbor ReadMe je v rovnakom priečinku ako program a že program Poznámkový blok je predvolenou aplikáciou pre typy súborov .txt a nachádza sa v ceste systémového prostredia.

Proces. Štart podobný príkazu Shell vo VB6

Pre programátorov, ktorí sú oboznámení s programom Visual Basic 6, Proces. štart je trochu ako VB 6 škrupina Príkaz. Vo VB 6 by ste použili niečo ako:

instagram viewer
lngPID = Shell ("MyTextFile.txt", vbNormalFocus)

Pomocou procesu. štart

Tento kód môžete použiť na spustenie programu Poznámkový blok a maximalizáciu ProcessStartInfo objekt, ktorý môžete použiť na presnejšiu kontrolu:

Dim ProcessProperties ako nový ProcessStartInfo
ProcessProperties. FileName = "notepad"
ProcessProperties. Argumenty = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. maximalizované
Dim myProcess As Process = Process. Štart (ProcessProperties)

Spustenie skrytého procesu

Môžete dokonca spustiť skrytý proces.

ProcessProperties. WindowStyle = ProcessWindowStyle. skrytý
Ale buď opatrný. Ak nepridáte viac kódu na ukončenie procesu, pravdepodobne ho budete musieť ukončiť v Správcovi úloh. Skryté procesy sa zvyčajne používajú iba pri procesoch, ktoré nemajú žiadne užívateľské rozhranie.

Načítanie názvu procesu

Pracujúci s Proces. štart ako .NET objekt vám dáva veľa schopností. Môžete napríklad získať názov procesu, ktorý sa začal. Tento kód zobrazí vo výstupnom okne „poznámkový blok“:

Dim myProcess As Process = Process. Spustite ("MyTextFile.txt") konzolu. WriteLine (myProcess. ProcessName)
To bolo niečo, čo ste mohli nie robiť s VB6 škrupina príkaz, pretože spustila novú aplikáciu asynchrónne. Použitím WaitForExit môže spôsobiť opačný problém v prostredí .NET, pretože ak potrebujete vykonať asynchrónne spustenie procesu, musíte spustiť proces v novom vlákne. Napríklad, ak potrebujete, aby komponenty zostali aktívne vo forme, v ktorej bol proces spustený a WaitForExit bol vykonaný. Zvyčajne tieto komponenty nebudú aktívne. Kód to a uvidíte sami.

Jedným zo spôsobov, ako prinútiť tento proces k zastaveniu, je použitie kill metóda.

myProcess. Kill ()

Tento kód čaká desať sekúnd a potom proces ukončí.

Vynútené oneskorenie je však niekedy nevyhnutné, aby sa proces ukončil, aby sa predišlo chybám.

myProcess. WaitForExit (10 000)
„ak sa proces nedokončí v rámci
'10 sekúnd, zabi to
Ak nie myProcess. Potom vystúpil
myProcess. Kill ()
Koniec Ak
Threading. Závit. Spánok (1)
Konzoly. WriteLine ("Poznámkový blok skončil:" _
& myProcess. ExitTime & _
Životné prostredie. Nový riadok & _
„Výstupný kód:“ & _
myProcess. EXITCODE)

Vo väčšine prípadov je pravdepodobne dobré dať svoje spracovanie do Použitím blok, aby sa zabezpečilo uvoľnenie zdrojov použitých v procese.

Použitie myProcess As Process = Nový proces
„Váš kód ide sem
Koniec používania

Aby sa toto všetko ešte ľahšie pracovalo, existuje dokonca aj proces komponent, ktorý môžete pridať do svojho projektu, takže môžete robiť veľa vecí uvedených vyššie v čase návrhu namiesto času spustenia.

Jednou z vecí, ktorá to omnoho uľahčuje, je kódovanie udalostí vyvolaných procesom, ako napríklad udalosť po ukončení procesu. Handler môžete tiež pridať pomocou kódu, ako je tento:

„umožňujú procesu upozorňovať na udalosti
myProcess. EnableRaisingEvents = True
'pridajte obsluhu udalosti Exited
AddHandler myProcess. Ukončené, _
AddressOf Me. ProcessExited
Private Sub ProcessExited (ByVal odosielateľ ako objekt, _
ByVal e As System. EventArgs)
„Váš kód ide sem
End Sub

Jednoduchý výber udalosti pre komponent je však oveľa jednoduchší.