Zweites Programm im Hintergrund starten
-
Hallo,
ich versuche derzeit per Fenster Handles und simulierten Tastaur- und Mausevents ein zweites Programm quasi fernzusteuern. Das klappt soweit auch wunderbar, allerdings war es bisher so dass das 2te Programm schon geöffnet war dafür.
Da dacht ich mir ich erweiter mein Programm schnell, ist ja nicht viel, aber das war wohl ein Irrtum...void main(int argc, char* argc[]) { HWND myProg = FindWindow(NULL, TEXT("shlexc")); if(myProg == 0) { system("C:\\Programme\\...\\shlexc.exe"); //spar mir den langen Pfad } //Rest vom Code }mein Problem ist aber dass das Starten des Programms, den Aufrufer solange blockiert bis es wieder beendet wurde. Das ist jetzt natürlich nicht in meinem Sinne. Gibt es eine einfache Möglichkeit (Parameter ?) mit dem man das 2te Programm im Hintergrund starten kann oder wenigstens dafür sorgen kann das der Aufrufer nicht blockiert wird ?
Danke schonmal für die Hilfe.
Grüße
-
Nimm ShellExecute(Ex).
Bei Nutzung der CRT flackert es sowieso.
-
Oh kay, dann werd ich mir das mal anschauen, ob ich damit weiterkomme. Danke soweit mal für den Tipp

-
Hey,
das Ganze funktioniert wunderbar, danke dafür.
Hab noch eine andere, vlt etwas doofe, Frage.Zum simulieren von Tastatureingaben verwende ich derzeit SendInput (hab gelesen keybd_event wäre veraltet...). Das klappt auch wunderbar, was ist jetzt aber wenn ich eine Eingabe eines Strings mit meinetwegen 50+ Zeichen simulieren möchte ?
Ich kann ja nicht 50mal SendInput dahinschreiben. Gibt es evt Möglichkeiten das zu realisieren oder muss ich mir händisch eine Methode schreiben die einen String entgegennimmt, ihn zerlegt und die Inputs zusammenbastelt ?
Wäre zwar jetzt keine schwere Sache, aber zeitaufwändig und unnötig falls es sowas schon gibt, kann nur nichts vernünftiges finden, es geht immer nur um eine einzelne Taste...