Friday 3 November 2017

Vb Processo Waitforexit


Process. Start con. WaitForExit () Process. Start (eseguibile. exe).WaitForExit () funziona bene, ma quando im cercando Process. Start (eseguibile fileindex. fsh).WaitForExit (), che ha bisogno di iniziare piccola operazione dos ottengo l'errore solo per farvi sapere questo fileindex. fsh eseguibile con bat file funziona test. bat e quando ho messo Process. Start (test. bat).WaitForExit () funziona per qualche ragione ho appena non so perché i cant uso fileindex. fsh eseguibile proprio come in VB6, o non so come usarlo RE: Process. Start con. WaitForExit () dimenticato di dire im Visual Basic RE utente 2006: Process. Start con. WaitForExit () ho bisogno di usare Process. Startexe, processo - windows. WaitForExit ma, come faccio a nascondere questo processo mostra come la funzione MSDOS in cima alla mia app: RE: Process. Start con. WaitForExit () TipGiver (programmatore) 19 6 Ottobre 12:52 dimenticato di dire im Visual Basic 200 6 utente penso che ci sia un Forum con ca8msm () che mostra come avviare un processo. Inoltre vi è la possibilità di avere le finestre nascoste. Dategli una ricerca. RE: Process. Start con. WaitForExit () TipGiver (programmatore) 19 6 Ottobre 13:01 Err. non riesco a trovare o che FAQ. Ma sono sicuro che esistesse. Ad ogni modo: Dim psi come nuovo System. Diagnostics. ProcessStartInfo psi. CreateNoWindow False psi. WindowStyle ProcessWindowStyle. Hidden psi. WorkingDirectory il psi. FileName directory filenameHow da utilizzare Process. Start in Visual Basic Dan Mabbutt. Metodo di base di Visual Expert L'inizio dell'oggetto processo è forse uno degli strumenti più sottovalutati disponibili a voi come programmatore. Come metodo, Inizio ha una serie di sovraccarichi (diversi set di parametri che determinano esattamente ciò che il metodo fa). In questo caso, i sovraccarichi consentono di specificare praticamente qualsiasi insieme di parametri che si potrebbe desiderare di passare a un altro processo quando viene avviato. Che cosa si può fare con Process. Start è davvero limitato solo dai processi che è possibile utilizzare con esso. Continua a leggere qui sotto Vale a dire, ci isn39t alcun limite da più continuano a venire tutto il tempo. Se si desidera visualizzare il file 34ReadMe34 basato su testo in Blocco note, it39s facile come: Ciò presuppone il file Leggimi si trova nella stessa cartella del programma e che Notepad è l'applicazione predefinita per i tipi di file txt e it39s nell'ambiente del sistema sentiero. Per i VB639ers tra il pubblico, Process. Start è un po 'come il comando VB6 Shell. In VB6, si potrebbe usare qualcosa come: lngPID 61 Shell (34MyTextFile. txt34, vbNormalFocus) È comunque possibile chiamare il comando di Shell in VB, ma wouldn39t consiglio. Utilizzare invece Process. Start. È possibile utilizzare questo codice, invece di avviare Blocco note massimizzato e creare un oggetto ProcessStartInfo che è possibile utilizzare per un controllo più preciso: ProcessProperties fioco come nuovo ProcessStartInfo ProcessProperties. FileName 61 34notepad34 ProcessProperties. Arguments 61 34myTextFile. txt34 ProcessProperties. WindowStyle 61 ProcessWindowStyle. Maximized Dim myProcess come processo 61 Process. Start (ProcessProperties) Continua a leggere qui sotto Si può anche avviare un processo nascosto. ProcessProperties. WindowStyle 61 ProcessWindowStyle. Hidden Ma attenzione. a meno che non si aggiungono più di codice per terminare il processo, you39ll probabilmente deve finire in Task Manager. processi nascosti sono normalmente utilizzate solo con processi che don39t avere qualsiasi tipo di interfaccia utente. Lavorare con Process. Start come un oggetto ti dà un sacco di possibilità. Ad esempio, è possibile recuperare il nome del processo che è stato avviato. Questo codice mostrerà 34notepad34 nella finestra di output: Dim myProcess Come Process 61 Process. Start (34MyTextFile. txt34) Console. WriteLine (myProcess. ProcessName) Se è necessario sospendere l'esecuzione del programma fino a quando il processo è terminato (qualcosa che si potrebbe fare con il codice di API in VB6), qui ya go. Console. WriteLine (34Notepad conclusa: 34 amp myProcess. ExitTime amp Environment. NewLine amp 34Exit Codice: 34 amp myProcess. ExitCode) Questo era qualcosa che non si poteva fare con il comando VB6 Shell perché ha lanciato la nuova applicazione in modo asincrono. Utilizzando WaitForExit può causare il problema inverso in perché si deve avviare un processo in un nuovo thread se ne avete bisogno di eseguire in modo asincrono. Ad esempio, se è necessario i componenti di rimanere attivi in ​​una forma in cui è stato avviato un processo ed è stato eseguito WaitForExit. Di solito, tali componenti won39t essere attivi. Codice in su e vedere di persona. Un modo per forzare il processo di fermare è quello di utilizzare il metodo di Kill. Questo codice attende per dieci secondi e quindi termina il processo. Ho trovato che un ritardo forzato era necessaria per permettere il completamento del processo di uscire per evitare un errore. myProcess. WaitForExit (10000) 39 se il doesn39t processo completo nel raggio di 39 10 secondi, uccidere se non myProcess. HasExited Poi myProcess. Kill () End If Threading. Thread. Sleep (1) Console. WriteLine (34Notepad conclusa: 34 amp myProcess. ExitTime amp Environment. NewLine amp 34Exit Codice: 34 amp myProcess. ExitCode) nella maggior parte dei casi, it39s probabilmente una buona idea di mettere il vostro trattamento in un blocco Using per garantire che le risorse utilizzate dal processo vengono rilasciati. Utilizzando myProcess Come Processo 61 nuovo processo 39 Il codice va qui finale utilizzando Per rendere tutto questo ancora più facile da lavorare, c'è anche una componente di processo che è possibile aggiungere al progetto in modo da poter fare un sacco di cose sopra indicati in fase di progettazione ora invece di tempo di esecuzione. Una delle cose che questo rende molto più facile è la codifica eventi generati dal processo, come ad esempio l'evento quando il processo è terminato. È inoltre possibile aggiungere un gestore utilizzando il codice come questo. 39 permettere al processo di generare eventi myProcess. EnableRaisingEvents 61 vero 39 aggiungere un gestore di eventi Exited AddHandler myProcess. Exited, AddressOf Me. ProcessExited Private Sub ProcessExited (ByVal sender As Object, ByVal e come System. EventArgs) 39 Il codice va qui End Sub ma semplicemente selezionando l'evento per il componente è molto più facile.

No comments:

Post a Comment