Verwenden von Process.Start in Visual Basic

Das Start Methode der Prozess object ist möglicherweise eines der am meisten unterschätzten Tools, die einem Programmierer zur Verfügung stehen. Als .NET-Methode, Start verfügt über eine Reihe von Überladungen, bei denen es sich um verschiedene Parametersätze handelt, die genau bestimmen, was die Methode tut. Mit den Überladungen können Sie nahezu jeden Parametersatz angeben, den Sie beim Start möglicherweise an einen anderen Prozess übergeben möchten.

Was Sie damit machen können Process.Start ist wirklich nur durch die Prozesse begrenzt, die Sie damit verwenden können. Wenn Sie Ihre textbasierte ReadMe-Datei im Editor anzeigen möchten, ist dies so einfach wie:

Process.Start ("ReadMe.txt")
oder
Process.Start ("Editor", "ReadMe.txt")

In diesem Beispiel wird davon ausgegangen, dass sich die ReadMe-Datei im selben Ordner wie das Programm befindet und dass Notepad die Standardanwendung für TXT-Dateitypen ist und sich im Systemumgebungspfad befindet.

Process.Start Ähnlich wie beim Shell-Befehl in VB6

Für Programmierer, die mit Visual Basic 6 vertraut sind, Process.Start ist etwas wie die VB 6 Schale Befehl. In VB 6 würden Sie Folgendes verwenden:

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

Process.Start verwenden

Mit diesem Code können Sie den Editor maximiert starten und einen erstellen ProcessStartInfo Objekt, das Sie für eine genauere Steuerung verwenden können:

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

Einen versteckten Prozess starten

Sie können sogar einen versteckten Prozess starten.

ProcessProperties.WindowStyle = ProcessWindowStyle.Hidden
Aber sei vorsichtig. Sofern Sie nicht mehr Code hinzufügen, um den Prozess zu beenden, müssen Sie ihn wahrscheinlich im Task-Manager beenden. Versteckte Prozesse werden normalerweise nur bei Prozessen verwendet, die keine Benutzeroberfläche haben.

Den Namen eines Prozesses abrufen

Arbeiten mit Process.Start als .NET-Objekt bietet Ihnen eine Menge Möglichkeiten. Beispielsweise können Sie den Namen des Prozesses abrufen, der gestartet wurde. Dieser Code zeigt "Editor" im Ausgabefenster an:

Dim myProcess As Process = Process.Start ("MyTextFile.txt") Console.WriteLine (myProcess.ProcessName)
Das war etwas, was man konnte nicht mache mit dem VB6 Schale Befehl, da er die neue Anwendung asynchron gestartet hat. Verwenden WaitForExit kann das umgekehrte Problem in .NET verursachen, da Sie einen Prozess in einem neuen Thread starten müssen, wenn er asynchron ausgeführt werden soll. Zum Beispiel, wenn Sie möchten, dass die Komponenten in einem Formular aktiv bleiben, in dem ein Prozess gestartet wurde, und WaitForExit wurde ausgeführt. Normalerweise sind diese Komponenten nicht aktiv. Codieren Sie es und überzeugen Sie sich.

Eine Möglichkeit, den Prozess anzuhalten, ist die Verwendung von Töten Methode.

myProcess.Kill ()