Externes Programm starten - notepad.exe geht, rest nicht
-
Hallo,
Hoffe ich bin hier richtig.Ich will aus meinem c++ code heraus ein externes Programm starten.
Notepad wird gefunden und geöffnet mit:
#include <string> ... string filename = "datei.txt"; string anzeigen = "notepad.exe "; string command1 = anzeigen+filename; system(command1.c_str());
Wenn ich jedoch ein anderes Programm starten will geht es nicht.
Ich benutze Eclipse unter WindowsXP, dazu MinGW mit msys als Kommandozeilenprog.
Da das zu startende Programm in die Umgebungsvariablen eingetragen ist, kann ich von msys aus dieses auch öffnen, ohne im Verzeichnis der exe zu sein.Wenn ich wie oben das Programm aus meinem Code aus ausführen will, geht dies nicht. Aber warum denn bitte nicht?
Vielen Dank für eure Tips.
-
merke ich gerade. also mein Programm starten und von dort aus externes Prog starten.
Aber nicht wenn ich mein Programm von eclipse aus starte.Somit bin ich dann doch falsch hier und werde mich in ein Eclipse Forum begeben.
Sollte das hier jemand lesen und mir das dennoch beantworten können, warum von der "Eclipse internen" Komandozeile heraus notepad.exe zwar ausgeführt werden kann, andere Programme jedoch nicht, wäre ich sehr dankbar.
Thanx
T
-
Direkt bei dem Problem kann ich dir nicht helfen. Allerdings einen Tipp geben und dadurch wird das Problem auch behoben. Verzichte auf
system
! Wieso steht hier:
system - C++ FAQVerwende dafür lieber CreateProcess oder ShellExecute(Ex) aus der WinAPI:
CreateProcess - Notepad öffnen - MFC FAQ
CreateProcess - MSDN
ShellExecute - MSDN
ShellExecuteEx - MSDNGrundsätzlich bist du wirklich im falschen Forum. Hätte eher nach C++, C oder WinAPI gepasst. Mit der MFC oder MSVS hat es ja nicht wirklich etwas zu tun.
Grüssli
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) 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.
-
Da NOTEPAD normalerweise im PATH liegt müsste system auch funktionieren.
Ansonsten stimmt was mit der CRT Deines Entwicklungssystems nicht.System ist BTW auch nicht unbedingt die richtige Funktion fremde Programme in Windows zu starten.
http://blog.m-ri.de/index.php/2008/09/04/aufflackern-eines-konsolenfensters-bei-nutzung-system-und-_popen/
(Der Artikel gilt jedoch für die MS CRT)