Come utilizzare Process.Start in Visual Basic

Il Inizio metodo del Processi L'oggetto è probabilmente uno degli strumenti più sottovalutati disponibili per un programmatore. Come metodo .NET, Inizio ha una serie di sovraccarichi, che sono diversi insiemi di parametri che determinano esattamente cosa fa il metodo. I sovraccarichi ti consentono di specificare qualsiasi set di parametri che potresti voler passare a un altro processo all'avvio.

Con cosa puoi fare Process.Start è davvero limitato solo dai processi che è possibile utilizzare con esso. Se si desidera visualizzare il file Leggimi basato su testo in Blocco note, è facile come:

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

In questo esempio si presuppone che il file Leggimi si trovi nella stessa cartella del programma e che Blocco note sia l'applicazione predefinita per i tipi di file .txt ed è nel percorso dell'ambiente di sistema.

Process.Start Simile al comando Shell in VB6

Per i programmatori che hanno familiarità con Visual Basic 6, Process.Start è un po 'come il VB 6 Conchiglia comando. In VB 6, useresti qualcosa del tipo:

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

Utilizzando Process.Start

È possibile utilizzare questo codice per avviare Blocco note ingrandito e creare un ProcessStartInfo oggetto che puoi usare per un controllo più preciso:

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

Avvio di un processo nascosto

Puoi persino avviare un processo nascosto.

ProcessProperties.WindowStyle = ProcessWindowStyle.Hidden
Ma fa attenzione. A meno che tu non aggiunga altro codice per terminare il processo, probabilmente dovrai terminarlo in Task Manager. I processi nascosti vengono normalmente utilizzati solo con processi che non hanno alcun tipo di interfaccia utente.

Recupero del nome di un processo

Lavorando con Process.Start poiché un oggetto .NET offre molte funzionalità. Ad esempio, è possibile recuperare il nome del processo avviato. Questo codice visualizzerà "blocco note" nella finestra di output:

Dim myProcess As Process = Process.Start ("MyTextFile.txt") Console.WriteLine (myProcess.ProcessName)
Questo era qualcosa che potevi non fare con il VB6 Conchiglia comando perché ha avviato la nuova applicazione in modo asincrono. utilizzando WaitForExit può causare il problema inverso in .NET perché è necessario avviare un processo in un nuovo thread se è necessario eseguirlo in modo asincrono. Ad esempio, se è necessario che i componenti rimangano attivi in ​​una forma in cui è stato avviato un processo e WaitForExit è stato eseguito. Di solito, quei componenti non saranno attivi. Codificalo e vedi di persona.

Un modo per forzare l'arresto del processo è utilizzare il Uccidere metodo.

myProcess.Kill ()