Programm nach laden eines externen Programmes beenden
-
Schönen guten Abend zusammen,
ich habe eine kleine Frage bzgl. meines Programmes.
Nach dem Start sollte es nach Möglichkeit ein anderes Programm laden
und ihm dabei verschiedenen Parameter übergeben.GetPrivateProfileString("Parameter", "1", "", param1, size, "./index.dat"); SetDlgItemText(hwnd, IDC_PARAM1, param1); ganzer_param << "meine.bat" << param1 << "+1 +2"; system( ganzer_param.str().c_str() ); PostQuitMessage(0);Soweit so gut, nur habe ich jetzt aber das Problem, dass ich mir wünschen würde,
das das Programm sich direkt nach dem starten der Batch Datei beenden würde
und nicht erst dann wenn die Batch Datei beendet wurde.Anbei vielleicht noch eine weitere Frage.
Wie ist es mir möglich vor der gesamten Abfrage den Lesepuffer zu löschen?
Denn wenn ich ein 2. Mal den "auslesen" - Button betätige, wird der Batch Datei
zwar der gesamte Parameter übergeben, allerdings doppelt, bzw. je öfter man den
Button drückt +1 mehr.
Im Grunde genommen ist dies nicht soo wichtig, da es höchst unwahrscheinlich
ist, dass der Button zwei- oder mehrmals nacheinander betätigt wird, vorallem
wenn das Programm sich nach dem es die Batch datei geladen hat, beendet.Vielen Dank schonmal.
-
1314 schrieb:
das das Programm sich direkt nach dem starten der Batch Datei beenden würde und nicht erst dann wenn die Batch Datei beendet wurde.
Versuch's mal mit ShellExecute().
Wie ist es mir möglich vor der gesamten Abfrage den Lesepuffer zu löschen?
du kannst (vor dem Eingeben der Werte) ganzer_param.str("") aufrufen, daß ersetzt den Puffer des Streams (ich tippe zumindest, daß das ein std::stringstream ist) durch einen Leerstring.
Denn wenn ich ein 2. Mal den "auslesen" - Button betätige, wird der Batch Datei zwar der gesamte Parameter übergeben, allerdings doppelt, bzw. je öfter man den Button drückt +1 mehr.
Wie kann man denn zweimal auf den Button drücken, wenn schon der erste Druck dazu führt, daß sich das Programm beendet?
-
Danke für die schnelle Antwort,
Wie kann man denn zweimal auf den Button drücken, wenn schon der erste Druck dazu führt, daß sich das Programm beendet?
Zur Zeit ist es ja noch so, dass sich mein Programm erst beendet, wenn auch die Batch Datei beendet wurde, in der Zwischenzeit hätte man noch Gelegenheit zig Mal den Button zu betätigen, wie ich oben schon erwähnt habe ist es sinnfrei dies zu tun, aber ich wollte das nur noch einmal wissen.
Ich werde deinen Vorschlag oben mit ShellExecute() mal ausprobieren.