Hur man använder Process.Start i Visual Basic

De Start metod för Bearbeta objektet är kanske ett av de mest undervärderade verktygen som finns tillgängliga för en programmerare. Som .NET-metod, Start har en serie överbelastningar, som är olika parametrar som bestämmer exakt vad metoden gör. Överbelastningen låter dig specificera nästan alla parametrar som du kanske vill överföra till en annan process när den startar.

Vad du kan göra med Process.Start är egentligen bara begränsad av de processer du kan använda den. Om du vill visa din textbaserade ReadMe-fil i Notepad är det lika enkelt som:

Process.Start ( "ReadMe.txt")
eller
Process.Start ("anteckningsblock", "ReadMe.txt")

Detta exempel antar att ReadMe-filen finns i samma mapp som programmet och att Notepad är standardapplikationen för .txt-filtyper, och den finns i systemmiljövägen.

Process.Start Liknar Shell Command i VB6

För programmerare som är bekanta med Visual Basic 6, Process.Start är något som VB 6 Skal kommando. I VB 6 skulle du använda något som:

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

Med hjälp av Process.Start

Du kan använda den här koden för att starta Notepad maximerad och skapa en ProcessStartInfo objekt som du kan använda för mer exakt kontroll:

Dim ProcessProperties Som ny ProcessStartInfo
ProcessProperties.FileName = "anteckningsblock"
ProcessProperties.Arguments = "myTextFile.txt"
ProcessProperties.WindowStyle = ProcessWindowStyle.Maximized
Dim myProcess As Process = Process.Start (ProcessProperties)

Starta en dold process

Du kan till och med starta en dold process.

ProcessProperties.WindowStyle = ProcessWindowStyle.Hidden
Men var försiktig. Om du inte lägger till mer kod för att avsluta processen måste du förmodligen avsluta den i Aktivitetshanteraren. Dolda processer används normalt bara med processer som inte har någon form av användargränssnitt.

Hämtar namnet på en process

Arbetar med Process.Start som .NET-objekt ger dig mycket kapacitet. Till exempel kan du hämta namnet på processen som startades. Den här koden visar "anteckningsblock" i utdatafönstret:

Dim myProcess As Process = Process.Start ("MyTextFile.txt") Console.WriteLine (myProcess.ProcessName)
Det här var något du kunde inte gör med VB6 Skal eftersom den lanserade den nya applikationen asynkront. Använder sig av WaitForExit kan orsaka det omvända problemet i .NET eftersom du måste starta en process i en ny tråd om du behöver den för att utföra asynkront. Om du till exempel behöver komponenterna förbli aktiva i en form där en process startades och WaitForExit blev avrättad. Vanligtvis kommer dessa komponenter inte att vara aktiva. Kod upp det och se själv.

Ett sätt att tvinga processen att stoppa är att använda Döda metod.

myProcess.Kill ()