Probleme mit Systemaufruf System()
-
Hundegang, ja das stimmt.
aber wenn ich
system("\"c:\\Programme\\Office 2007 Tool\\test.bat\" argument2");aufrufe wird test.bat gestartet und argument2 ist als %1 verfügbar
also das Problem muss wo anders liegen..
-
Hundeman schrieb:
Ja, das weiß ich, aber weißt du 100%ig wie ein solcher Aufruf intern gehändelt wird? Das der Parameter im String noch angehängt wird ist mir klar, nur scheint die Bat datei dies ja irgendwie nicht mitzubekommen. Also ist für mich die erste Vermutung das der Aufruf der Bat Datei nicht so ist wie er sein sollte. Und der einzige Punkt an dem ich anzusetzen wüsste sind die zusätzlichen Anführungszeichen.
Wenn der PAUSE-Befehl in der Batchdatei noch nicht mal ausgeführt wird, heißt das ja eigentlich, dass sie gar nicht aufgerufen wird. Der Fehler ist also nicht mal der fehlende Parameter (deshalb meine Vermutung mit dem vergessenen Leerzeichen). Hm...
-
Neue Erkenntniss:
wenn ich
system("\"c:\\Programme\\Office 2007 Tool\\test.bat\" \"argument 1\"");starte, komm die Fehlermeldung
"Der Befehl "c:\programme\office" ist entweder falsch geschrieben oder konnte nicht gefunden werden"
-
Dominik L. schrieb:
Hundegang, ja das stimmt.
aber wenn ich
system("\"c:\\Programme\\Office 2007 Tool\\test.bat\" argument2");aufrufe wird test.bat gestartet und argument2 ist als %1 verfügbar
also das Problem muss wo anders liegen..
Woher weißt Du das das Argument verfügbar ist wenn die Software nicht richtig startet?
-
Willst du das nicht lieber mit CreateProcess oder so machen? Da kannst du über die cmd.exe auch Batchdateien starten. Ist wahrscheinlich die sinnvollere Variante.
-
Wenn das Argument keine Leerzeichen enthält, kann ich es ohne Anführungszeichen schreiben. Dann startet er die Bat mit Argumenten. Wenn ich Allerdings das Argument in Anführungszeichen setzte, findet er nicht mal die Bat Datei...
sehr mysteriös..
scheint aber kein Visuall c++ 2008 spezifisches Problem zu sein, weil Dev C++ 4.9 ebenfalls streikt mit dem selben Verhalten..
-
Wie gesagt:
_matze schrieb:
Willst du das nicht lieber mit CreateProcess oder so machen? Da kannst du über die cmd.exe auch Batchdateien starten. Ist wahrscheinlich die sinnvollere Variante.

-
Danke für eure mithilfe und den Hinweis auf Alternativ-Lösungen. Aber mich interresiert trotzdem das Problem an sich..
-
Dominik L. schrieb:
Danke für eure mithilfe und den Hinweis auf Alternativ-Lösungen. Aber mich interresiert trotzdem das Problem an sich..
Tja, ich hab's grad nachgestellt und krieg's auch nicht hin. Ich würde dir weiterhin zu CreateProcess raten, auch wenn du das nicht hören willst.

-
Danke für deinen Versuch. Ich habs jetzt nochmal schön formuliert und ins denk mal passende forum geschrieben. Das hier kann theoretisch gelöscht werde..
Danke fürs mitdenken