Probleme mit ShellExecute
-
Moin, stehe vor einer Mauer und komme nicht weiter.
Möchte das in meinem Programm ein externes Programm gestartet wird.
ShellExecute(NULL,TEXT("open"),TEXT("c://Optimierung2/tripos.exe c://Optimierung2/LLNconfig.xtp c://Optimierung2/output.adf"), NULL, NULL, SW_SHOW);
das Programm heißt tripos.exe und erwartet eine xtp und eine adf file. Würde ich nur c://Optimierung2/tripos.exe eingeben startet er die exe. Gebe ich alles ein tut sich nichts.
Habe schon an system(c://Optimierung2/tripos.exe) gedacht. Leider geht da gar nichts.

-
Du bist eigentlich im falschen Forum. Das ist WinAPI.
Achte aber genauer auf die erwarteten Parameter von ShellExecute.
http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx
In deinem Fall sind die beiden letzten Dateinamen Parameter für die Aufgerufene Datei. Sie gehören daher auch an die entsprechende Stelle beim Aufruf von ShellExecute.
-
die Parameter sind schon an der richtigen stelle. vielleicht versteht er nicht das es parameter sind. habe es jetzt so eingegeben wie es in der shell machen würde.
hmm weißt du vielleicht warum die system(); nicht will ?
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum 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.
-
Du könntest mehrere Probleme haben. Z.B. verwendest du mit ShellExecute ein Funktion die 8-bit ANSI erwartet und gleichzeitig das Text-Makro.
Zeig mal deinen Aufruf im Quelltext und prüfe ob UNICODE im Projekt (oder per Makro) definiert ist oder nicht.
-
Sorry, hab gerade nicht aufgepasst. Der Aufruf ist bezüglich ANSI/UNICODE schon richtig.
-
Mal Grundsätzlich:
1. ein Slash / muss nict doppelt escaped werden.
2. Normalerweise nutzt WIndows einen Backslash \ für Pfade. Wenn Deine tripos.exe Optionen mit Slash / parsed kann es sein, dass die Exe, das nicht kappiert.
-
also ich habe es nun so eingestellt.
system("c:\\Optimierung2\\tripos.exe c:\\Optimierung2\\test.xtp c:\\Optimierung2\\output.adf > c:\\log.txt");
läuft auch alles wie es soll. Ein Problem besteht leider noch. Die log.txt wird neu erstellt und alles alte überschrieben.
-
Statt mit > umzuleiten könntest du >> verwenden.
-
super danke
