Rückgabewerte einer EXE abfangen und auswerten

28/11/2007 - 16:59 von Hans Otany | Report spam
Hallo,

ich möchte aus meinem VB 2005 Programm eine .exe öffnen,
welche Returnkommandos (nicht nur Exitcode sondern auch Kommandos auf andere
Ereignisse) zurück gibt.
Dies ist eine EXE welche man laut Hersteller mit einer Batch ausführen kann
und in dieser Batch auch die Rückgabewerte abfragen kann.
Da ich aber eine GUI um dieses Tool basteln will, fàllt Batch aus. Mit
VB2005
Mitteln wàre es mir lieber.

Es handelt sich um eine VPN-Client.exe, welche aus einer Batch mit
"vpnclient connect <profile> [user <username>] [pwd <password>]" gestartet
werden kann.
nun gibt diese bspw. einen Returncode 200 für Success_Start zurückl oder
einen 201 für Success_Stop.
Mit einer Batch könnte man dieses laut Hersteller folgendermassen abfragen:

runxls.bat
rem assume you have generated a report in the middle of the night that needs
rem to be sent to the corporate office.
rem .. generate report.xls . .
rem connect to the home office
vpnclient connect myprofile user admin pwd admin
rem check return code from vpnclient call
if %errorlevel% neq 200 goto failed
rem if okay continue and copy report
copy report.xls \\mycorpserver\directory\overnight_reports /v
rem now disconnect the VPN connection
vpnclient disconnect
echo Spreadsheet uploaded
goto end
:failed
echo failed to connect with error = %errorlevel%
:end

Ich möchte aber nicht nur den ExitCode auswerten sondern in meinem
speziellen Fall alle möglichen Returncodes (also z.B. 200 oder 201).


Jetzt würde ich gern wissen ob ich aus meinem VB Programm irgendwie die EXE
starten und die Rückgabeparameter der EXE wieder an eine VB Variable
übergeben kann?

Vielen Dank.

mfg Hans
 

Lesen sie die antworten

#1 Alfred Malleier
28/11/2007 - 18:28 | Warnen spam
"Hans Otany schrieb:

Jetzt würde ich gern wissen ob ich aus meinem VB Programm irgendwie die
EXE
starten und die Rückgabeparameter der EXE wieder an eine VB Variable
übergeben kann?



Dim P As System.Diagnostics.Process
P = System.Diagnostics.Process.Start("VNC.exe")
Dim ExitCode As Integer = P.ExitCode

Du kannst auch

Dim Info As New System.Diagnostics.ProcessStartInfo("VNC",Argumente)

definieren und der Process.Start-Methode übergeben.

Selbst habe ich die ExitCode-Eigenschaft nicht getestet.

Grüße Alfred M.

Ähnliche fragen