Codice di ritorno da un file exe.

giovedì 14 gennaio 2010 - 11.03

ascap Profilo | Newbie

ciao a tutti,
ho sviluppato due applicazioni console, ora ho l'esigenza di chiamarle una dopo l'altra, ma la seconda va lanciata solo in caso la prima ha eseguito tutto senza errori.
Avevo pensato a qualcosa del genere
retCode = Shell("Prova.exe", AppWinStyle.NormalFocus, True)
if retCode = 0 then
Shell("Programma2.exe", AppWinStyle.NormalFocus, True)
else
MsgBox("Errore durante l'esecuzione di Prova.exe")
End If

ma come faccio ad assegnare un codice di ritorno a Prova.exe?

Grazie a tutti!

AntCiar Profilo | Expert

Ciao.

valorizza 'Environment.ExitCode' con un valore di tipo intero ed è fatto.

Ciao ciao

Cristian Barca

aiedail92 Profilo | Expert

Comunque, Amico, non puoi usare la funzione Shell se vuoi sapere il codice di ritorno del processo che lanci, come dice msdn: “Quando un processo termina, può restituire codice di uscita. Per recuperarlo, non è tuttavia possibile utilizzare Shell. La funzione Shell, infatti, restituisce zero se attende il completamento e il processo viene inoltre eseguito in un oggetto diverso da Shell.”

Devi quindi lanciare il processo con Process.Start, aspettare che termini, e quindi controllare il codice di uscita con Process.ExitCode:

Try Dim proc as System.Diagnostics.Process = System.Diagnostics.Process.Start("Prova.exe") proc.WaitForExit() If proc.ExitCode = 0 Then ' etc... End If Catch e As Exception MsgBox(e.Message) End Try


Luca

ascap Profilo | Newbie

Grazie ragazzi, siete stati davvero di grande aiuto!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5