C++ Funktion zum starten eines Programmes
-
Hallo alle zusammen,
Ich habe vor mir mal nur zum spaß ein Programm zu schreiben, das gleichzeitig mehrere Konsolen mit zufälligem text öffnet und schließt.
Das Resultat sollte dann etwa so aussehen: http://www.youtube.com/watch?feature=player_detailpage&v=ba_sJkWdBLA#t=19s
Dasz habe ich zunächst ein Programm geschrieben, dass Zufallstext ausgibt:
# include <iostream> using namespace std; int main(){ int i; char result_char; int x = 0; while(x < 58000){ i = rand() % 36; if(i < 26){ result_char = i+'A'; } else{ result_char = i-26+'0';} cout<<result_char; if(i == 3){ cout<<endl; } x++; } return 0; }
Davon habe ich 3 ausführungen, die sich nur in der länge der Laufzeit unterscheiden.
Nun wollte ich mit einem Anderem Programm dieses Programm mehrmals öffnen.
Also, innerhalb einer Schleife eine abfolge von Aufrufbefehlen und Sleep(); ums ein bischen übersichtlich zu halten.Ich habe dafür zuerst System("Textausgabe.exe"); benutzen wollen aber das broblem ist, dass keine neuen Fenster geöfnet werde, sondern nur der code des anderen Programmes im gleichen Fenster abgearbeitet wird.
Kann mir bitte jamand sagen wie ich das mit System(); vermeiden kann oder mir eine andere Funktion zeigen mit der es so wie gedacht funktioniert.
Ich habs auch schon mit CreateProcess(); versucht, aber das scheint nur bei WinAPI zu funktionieren.
-
Irgend so ein Typ^10 schrieb:
Ich habs auch schon mit CreateProcess(); versucht, aber das scheint nur bei WinAPI zu funktionieren.
Exakt. Ohne systemspezifische Funktionen wirst du hier nicht weiterkommen, denn Fenster sind Systemsache. Egal, ob du die nun direkt über die Systemapi aufrufst oder indirekt über
system()
(rate mal, wieso die Funktion so heißt). Gehe ich Recht in der Annahme, dass du für Windows entwickelst?
-
Ja ich entwickele für Windows genauer Windows 7 Home Premium 64bit.
-
Irgend so ein Typ^10 schrieb:
Ja ich entwickele für Windows genauer Windows 7 Home Premium 64bit.
Und wo ist dann dein Problem mit der WinApi?
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x und C++11) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ich bin noch Anfänger und hab bisher nur Konsolenanwendungen programiert.
-
Benutze CreateProcess mit dem "Process Creation Flag" CREATE_NEW_CONSOLE.
-
Hallo schau dir mal folgende Funktionen an:
WinExec
ShellExecutehttp://msdn.microsoft.com/en-us/library/windows/desktop/ms687393(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspxGoogle dork
: msdn WinApiFunktionsName
bsp.: msdn WinExec
-
Mit WinExec() hatte ich das gleiche problem wie mit system().
Aus ShellExecute() binn ich garnicht schlau geworden.
Und dien Vorschlag von desktops verstehe ich auch nicht, köntest du dazu mal ein
Beispiel posten?
-
Dann erstell doch einfach eine "normale" Windowsanwendung (WinMain als Einstiegspunkt). Und dann einfach die genannten Funktionen nutzen.
Mit ShellExecute:ShellExecuteA(0, "open", /*Dateiname*/,"",0, SW_SHOW);
Über Sinn und Unsinn eines solches Projekts lässt sich natürlich streiten
-
Danke so funktioniert es.
Was den Sinn betrifft hab ich ja schon gesagt, dass ich das nur zum spaß mache.