Hoe Process.Start te gebruiken in Visual Basic

De Begin methode van de Werkwijze object is mogelijk een van de meest ondergewaardeerde tools die beschikbaar zijn voor een programmeur. Als een .NET-methode, Begin heeft een reeks overbelastingen, die verschillende sets parameters zijn die precies bepalen wat de methode doet. Met de overbelastingen kunt u zo ongeveer elke set parameters opgeven die u mogelijk aan een ander proces wilt doorgeven wanneer het wordt gestart.

Wat u ermee kunt doen Process.Start is eigenlijk alleen beperkt door de processen die u ermee kunt gebruiken. Als u uw op tekst gebaseerde ReadMe-bestand in Kladblok wilt weergeven, is dit net zo eenvoudig als:

Process.Start ( "ReadMe.txt")
of
Process.Start ("notepad", "ReadMe.txt")

In dit voorbeeld wordt ervan uitgegaan dat het ReadMe-bestand zich in dezelfde map als het programma bevindt en dat Kladblok de standaardtoepassing is voor .txt-bestandstypen en zich in het systeemomgevingpad bevindt.

Process.Start Gelijk aan Shell Command in VB6

Voor programmeurs die bekend zijn met Visual Basic 6, Process.Start lijkt enigszins op de VB 6 schelp commando. In VB 6 zou je zoiets gebruiken als:

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

Process.Start gebruiken

U kunt deze code gebruiken om Kladblok gemaximaliseerd te starten en een te maken ProcessStartInfo object dat u kunt gebruiken voor preciezere controle:

Dim ProcessProperties As New ProcessStartInfo
ProcessProperties.FileName = "notepad"
ProcessProperties.Arguments = "myTextFile.txt"
ProcessProperties.WindowStyle = ProcessWindowStyle.Maximized
Dim myProcess As Process = Process.Start (ProcessProperties)

Een verborgen proces starten

Je kunt zelfs een verborgen proces starten.

ProcessProperties.WindowStyle = ProcessWindowStyle.Hidden
Maar pas op. Tenzij u meer code toevoegt om het proces te beëindigen, moet u het waarschijnlijk beëindigen in Taakbeheer. Verborgen processen worden normaal alleen gebruikt met processen die geen enkele gebruikersinterface hebben.

De naam van een proces ophalen

Werken met Process.Start als een .NET-object biedt u veel mogelijkheden. U kunt bijvoorbeeld de naam ophalen van het proces dat is gestart. Deze code geeft "Kladblok" weer in het uitvoervenster:

Dim myProcess As Process = Process.Start ("MyTextFile.txt") Console.WriteLine (myProcess.ProcessName)
Dit was iets wat je kon niet doen met de VB6 schelp commando omdat het de nieuwe applicatie asynchroon heeft gestart. Gebruik makend van WaitForExit kan het omgekeerde probleem veroorzaken in .NET omdat u een proces in een nieuwe thread moet starten als u het asynchroon wilt uitvoeren. Als u bijvoorbeeld de componenten nodig hebt om actief te blijven in een vorm waarin een proces is gestart en WaitForExit is geëxecuteerd. Normaal gesproken zijn die componenten niet actief. Codeer het en ontdek het zelf.

Een manier om het proces te stoppen, is het gebruik van de Doden methode.

myProcess.Kill ()