exe aufrufen und Ausgabe abfangen
-
Hallo
Ich schreibe mit Mircosoft Visual C++ 2010 Express ein kleines Programm. Dieses soll eine vorhandene .exe Datei aufrufen, ausführen und dessen Ausgabe möchte ich zusätzlich in meinem Programm auffange.
Ich denke das geht irgendwie mit pipe's und CreateProcess? Ich finde aber nirgends eine Anleitung dazu, oder wenigstens wie die Funktionen in Visual C++ heissen.
Kennt da jemand eine Anleitung? Oder eben wenigstens die Funktionen die ich benutzen muss, dann kann ich selbst genauer danach googlen.Vielen Dank

-
man: popen. Gibt es auch unter Windows. Da heißt es aber bestimmt _popen oder _topen oder so.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung 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.
-
-
Jochen Kalmbach schrieb:
Genau das habe ich auch gefunden. Nur ist das ist C++, das funktioniert in meinem Visual C++ nicht.
-
WO siehst Du da C++?
WAS willst Du?
WAS bedeutet "funktioniert nicht"?
-
Jochen Kalmbach schrieb:
WO siehst Du da C++?
WAS willst Du?
WAS bedeutet "funktioniert nicht"?Sorry, jetzt läuft es etwas besser. Aber ich kriege einen Error
Bei
hThread = CreateThread(NULL,0,GetAndSendInputThread, (LPVOID)hInputWrite,0,&ThreadId);Gibt es bei mir folgenden ERROR:
1>h:\eigene dateien\visual studio 2010\projects\speedtest\speedtest\Form1.h(361): error C2664: 'CreateThread': Konvertierung des Parameters 3 von 'DWORD (__stdcall *)(LPVOID)' in 'LPTHREAD_START_ROUTINE' nicht möglich 1> Die Adresse einer Funktion liefert die __clrcall-Aufrufkonvention in /clr:pure und /clr:safe. Verwenden Sie evtl. __clrcall im Zieltyp.
-
Ok. allso vergesst bitte alles oben, habe jetzt nur noch einen ERROR. Konnte die anderen mit Hilfe lösen
Und zwar beihThread = CreateThread(NULL,0,GetAndSendInputThread, (LPVOID)hInputWrite,0,&ThreadId);Gibt es ein
1>h:\eigene dateien\visual studio 2010\projects\speedtest\speedtest\Form1.h(498): error C3867: "Speedtest::Form1::GetAndSendInputThread": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&Speedtest::Form1::GetAndSendInputThread", um einen Zeiger auf den Member zu erstellen.Wenn ich statdessen &Speedtest::Form1::GetAndSendInputThread einsetze, kommt auch wieder ein ERROR, da die Funktion keine delegateFunktion oder so ist.
-
Wenn Du eh ein .NET Programm hast, dann solltest Du auch .NET verwenden um das zu machen... das nimmt Dir auch die Arbeit ab!
System::Diagnostics::process::Start
-
Jochen Kalmbach schrieb:
Wenn Du eh ein .NET Programm hast, dann solltest Du auch .NET verwenden um das zu machen... das nimmt Dir auch die Arbeit ab!
System::Diagnostics::process::Start
Hm ok. Erst mal Danke für die Antwort. Werde das Projekt jedoch nochmals neu überdenken

Ich wollte eigentlich ohne .NET auskommen (Damit es auf möglichst allen Windows PC's läuft). Kenne mich sonst nur mit JAVA aus, mit Visual Studio habe ich noch so meine Probleme