Laden...

Windows Forms Anwendung per CMD starten, CMD "warten" bis Programm fertig

Erstellt von torillo vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.227 Views
T
torillo Themenstarter:in
4 Beiträge seit 2014
vor 6 Jahren
Windows Forms Anwendung per CMD starten, CMD "warten" bis Programm fertig

Hallo an alle Spezialisten,

zu folgender Frage bitte ich um Eure Hilfe:

Ich habe eine Windows Forms Anwendung erstellt.
Diese wird unter Windows 10 per CMD/DOS-Fenster unter Angabe von zwei Parametern gestartet, z. B.:
meinprogramm.exe dateiname.xls sheetname

Nach dem Starten des Programms per CMD/Dos-Fenster bekomme ich in der CMD sofort wieder ein Prompt, so dass weitere Befehle ausgeführt werden könnten. Aber ich hätte gerne, dass die CMD "wartet" bis das Programm fertig ist und erst dann die CMD wieder aktiv wird (so, wie es sich z. B. bei einer Batchdatei verhält). Hintergrund: der Aufruf des Programms soll später per Outlook erfolgen, auf der CMD soll dann - je nachdem, ob das Programm erfolgreich durchgelaufen ist - ein Wert (0 oder 1) ausgegeben werden, der wiederum an Outlook zurück geht, um dann entsprechend Mails zu versenden o. ä.

Habt ihr hierfür einen Ansatz für mich?

Danke für jeden Tipp!
Torillo

R
1 Beiträge seit 2017
vor 6 Jahren

Hallo,

In der C# Anwendung an passender Stelle mit


  Environment.ExitCode = 1;

einen Rückgabewert setzen. Dieser Wert kann dann als "ERRORLEVEL" in Batch ausgewertet werden, bzw. der Entsprechung in VB.

in der Kommandozeile kannst du folgendes probieren (if errorlevel x prüft ob der Rückgabewert gleich oder größer der Zahl ist)


start /wait meinprogramm.exe dateiname.xls sheetname
if errorlevel 1 echo 1 oder hoeher wurde zurueckgegeben

in VB (da bin ich mir nicht ganz sicher, aber so in etwa)


Dim oProcess As Process
oProcess = System.Diagnostics.Process.Start("meinprogramm.exe","dateiname.xls sheetname")
oProcess.WaitForExit()
' in oProcess.ExitCode steht der Rückgabewert der gestarteten Anwendung

Hoffe das Hilft.

Gruß
Robert

T
torillo Themenstarter:in
4 Beiträge seit 2014
vor 6 Jahren

Hallo Robert,

danke für Deine Tipps, ich werde das testen - allerdings voraussichtlich erst am kommenden Wochenende - und melde mich dann hier zurück!

Viele Grüße
Torillo

771 Beiträge seit 2009
vor 6 Jahren

Das wird alleine nicht helfen, s. How does the command prompt know when to wait for exit?

Benutze einfach


start /w meinprogramm.exe ...

Das klappt dann auch für GUI-Programme.

Edit: Ups, jetzt erst sehe ich, dass Robert1974 dies ja auch geschrieben hat (sorry 😉).