myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin

Ressourcen
» guide to C#
» openbook: Visual C#
» openbook: OO
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: Windows-Forms » Windows Forms Anwendung per CMD starten, CMD "warten" bis Programm fertig
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

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

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
torillo
myCSharp.de-Mitglied

Dabei seit: 02.11.2014
Beiträge: 4


torillo ist offline

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

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
19.05.2017 14:04 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Robert1974
myCSharp.de-Mitglied

Dabei seit: 20.05.2017
Beiträge: 1


Robert1974 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

In der C# Anwendung an passender Stelle mit

C#-Code:
  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)

Code:
1:
2:
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)

Code:
1:
2:
3:
4:
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

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Robert1974 am 20.05.2017 21:50.

20.05.2017 21:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
torillo
myCSharp.de-Mitglied

Dabei seit: 02.11.2014
Beiträge: 4

Themenstarter Thema begonnen von torillo

torillo ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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
23.05.2017 14:49 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Cat
myCSharp.de-Mitglied

images/avatars/avatar-3070.jpg


Dabei seit: 25.10.2009
Beiträge: 771


Cat ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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

Benutze einfach

Code:
1:
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 Augenzwinkern ).

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Cat am 23.05.2017 15:44.

23.05.2017 15:41 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 4 Monate.
Der letzte Beitrag ist älter als 4 Monate.
Antwort erstellen


© Copyright 2003-2017 myCSharp.de-Team. Alle Rechte vorbehalten. 18.10.2017 20:12