Spusťte něco pomocí procesu. Začněte ve VB.NET

click fraud protection

Start metoda Proces Objekt je pravděpodobně jedním z nejvíce podceňovaných nástrojů, které má programátor k dispozici. Jako .SÍŤ metoda, Start má řadu přetížení, což jsou různé sady parametrů, které přesně určují, co metoda dělá. Přetížení vám umožní určit téměř každou sadu parametrů, které byste mohli chtít při spuštění předat jinému procesu.

Co můžete dělat Proces. Start je opravdu omezena procesy, které s ním můžete použít. Pokud chcete zobrazit textový soubor ReadMe v programu Poznámkový blok, je to tak snadné jako:

Proces. Start ("ReadMe.txt")
nebo.
Proces. Start ("Poznámkový blok", "ReadMe.txt")

Tento příklad předpokládá, že soubor ReadMe je ve stejné složce jako program a že Poznámkový blok je výchozí aplikací pro typy souborů TXT a je v cestě systémového prostředí.

Proces. Začněte podobně jako příkaz Shell ve VB6

Pro programátory obeznámené s Visual Basic 6, Proces. Start je poněkud jako VB 6 Shell příkaz. Ve VB 6 byste použili něco jako:

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

Pomocí procesu. Start

Tento kód můžete použít pro spuštění maximalizovaného programu Poznámkový blok a vytvoření ProcessStartInfo objekt, který můžete použít pro přesnější ovládání:

Dim ProcessProperties jako nový ProcessStartInfo
ProcessProperties. FileName = "notepad"
ProcessProperties. Argumenty = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. Maximalizováno
Dim myProcess As Process = Process. Start (ProcessProperties)

Spuštění skrytého procesu

Můžete dokonce spustit skrytý proces.

ProcessProperties. WindowStyle = ProcessWindowStyle. Skrytý
Ale buď opatrný. Pokud k ukončení procesu nepřidáte další kód, pravděpodobně jej budete muset ukončit ve Správci úloh. Skryté procesy se obvykle používají pouze u procesů, které nemají žádné uživatelské rozhraní.

Načítání názvu procesu

Práce s Proces. Start jako .NET objekt vám dává spoustu schopností. Můžete například načíst název procesu, který byl spuštěn. Tento kód zobrazí ve výstupním okně „poznámkový blok“:

Dim myProcess As Process = Process. Spusťte konzolu ("MyTextFile.txt"). WriteLine (myProcess. ProcessName)
To bylo něco, co jste mohli ne dělat s VB6 Shell příkaz, protože spustila novou aplikaci asynchronně. Použitím WaitForExit může způsobit problém s obrácením v .NET, protože musíte spustit proces v novém vláknu, pokud jej potřebujete provést asynchronně. Například pokud potřebujete, aby komponenty zůstaly aktivní ve formě, kde byl proces spuštěn a WaitForExit byl popraven. Obvykle nebudou tyto komponenty aktivní. Kód to a uvidíte sami.

Jedním ze způsobů, jak přinutit tento proces k zastavení, je použít Zabít metoda.

myProcess. Zabít()

Tento kód čeká deset sekund a potom proces ukončí.

Vynucené zpoždění je však někdy nezbytné k tomu, aby se proces ukončil, aby nedošlo k chybě.

myProcess. WaitForExit (10 000)
'pokud se proces uvnitř nedokončí
'10 sekund, zabij to
Pokud ne myProcess. HasExited Then
myProcess. Zabít()
Konec If
Vlákno. Vlákno. Spánek (1)
Řídicí panel. WriteLine ("Notepad skončil:" _
& myProcess. ExitTime & _
Životní prostředí. Nový řádek & _
"Exit Code:" & _
myProcess. ExitCode)

Ve většině případů je asi dobrý nápad dát své zpracování do Použitím blok, aby se zajistilo uvolnění prostředků použitých v procesu.

Použití myProcess As Process = Nový proces
"Váš kód jde sem."
Ukončete používání

Aby se toto všechno ještě snadněji pracovalo, existuje dokonce Proces komponentu, kterou můžete přidat do svého projektu, takže můžete provádět spoustu věcí uvedených výše v době návrhu místo času spuštění.

Jednou z věcí, která to mnohem usnadňuje, je kódování událostí vyvolaných procesem, jako je například událost, když proces skončil. Můžete také přidat popisovač pomocí kódu, jako je tento:

'dovolit procesu vyvolat události
myProcess. EnableRaisingEvents = True
'přidejte obslužný program Exited
AddHandler myProcess. Natěšený, _
AddressOf Me. ProcessExited
Private Sub ProcessExited (odesílatel ByVal jako objekt, _
ByVal e As System. EventArgs)
"Váš kód jde sem."
End Sub

Ale jednoduše vybrat událost pro komponentu je mnohem snazší.

instagram story viewer