Inizia qualcosa usando il processo. Inizia in VB.NET

Il Inizio metodo del Processi L'oggetto è probabilmente uno degli strumenti più sottovalutati disponibili per un programmatore. Come un .NETTO metodo, 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 Processi. Inizio è 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:

Processi. Avviare ( "ReadMe.txt")
o.
Processi. Start ("blocco note", "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.

Processi. Avvia simile al comando Shell in VB6

Per i programmatori che hanno familiarità con Visual Basic 6,

instagram viewer
Processi. Inizio è un po 'come il VB 6 Conchiglia comando. In VB 6, useresti qualcosa del tipo:

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

Utilizzando il processo. Inizio

È 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. Massima
Dim myProcess As Process = Process. Avvia (ProcessProperties)

Avvio di un processo nascosto

Puoi persino avviare un processo nascosto.

ProcessProperties. WindowStyle = ProcessWindowStyle. Nascosto
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 Processi. Inizio 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. Avviare la console ("MyTextFile.txt"). WriteLine (myProcess. Nome del processo)
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. Uccidere()

Questo codice attende dieci secondi e quindi termina il processo.

Tuttavia, a volte è necessario un ritardo forzato per consentire al processo di completare l'uscita per evitare un errore.

myProcess. WaitForExit (10000)
"se il processo non viene completato entro
'10 secondi, uccidilo
If Not myProcess. HasExited Then
myProcess. Uccidere()
Finisci se
Threading. Filo. Sonno (1)
Console. WriteLine ("Blocco note terminato:" _
& myProcess. ExitTime & _
Ambiente. Nuova linea & _
"Codice di uscita:" & _
myProcess. ExitCode)

Nella maggior parte dei casi, è probabilmente una buona idea inserire la tua elaborazione in a utilizzando blocco per garantire il rilascio delle risorse utilizzate dal processo.

Utilizzo di myProcess come processo = Nuovo processo
'Il tuo codice va qui
Uso finale

Per rendere tutto ancora più facile da lavorare, c'è anche un Processi componente che puoi aggiungere al tuo progetto in modo da poter fare molte delle cose mostrate sopra in fase di progettazione anziché in fase di esecuzione.

Una delle cose che rende molto più semplice è la codifica degli eventi generati dal processo, come ad esempio l'evento al termine del processo. Puoi anche aggiungere un gestore usando il codice in questo modo:

'consentire al processo di generare eventi
myProcess. EnableRaisingEvents = True
'aggiungi un gestore eventi Exited
AddHandler myProcess. Uscito, _
AddressOf Me. ProcessExited
Private Sub ProcessExited (mittente ByVal come oggetto, _
ByVal e As System. EventArgs)
'Il tuo codice va qui
End Sub

Ma selezionare semplicemente l'evento per il componente è molto più semplice.

instagram story viewer