Anderes/Externes Programm mit C++ starten?
Hallo ich möchte gerne ein anderes Programm mit C++ starten,
Beispiel:
system("C:\Program Files\Epic Games\Rust.exe");
Dann sagt das Programm aber dass C:\Program nicht gefunden wurde, ich denke dass es wegen dem Leerzeichen ist. wie kann ich das fixen oder gibts es einfache alternativen?
2 Antworten
Du führst ein Programm so über den String über CMD aus, richtig?
Das heißt, es wird der String C:\Program Files\Epic Games\Rust.exe übergeben - ohne Anführungszeichen.
Mit Escape Characters und Slashes den Befehl zu übergeben wäre sinnig. Sonst nimmt er "\" ebenfalls als Escape Character auf.
system("\"C:/Program Files/Epic Games/Rust.exe\"");
LG
Wie gesagt "\" durch "/" ersetzen und den String mit \" beginnen und enden, damit die Anführungszeichen mitgenommen werden.
Wie es in meiner Antwort eins zu eins steht, kannst du Rust ausführen.
Poste es bitte nochmals eins zu eins als Kommentar. Wenn du eins der beiden nicht richtig gemacht hast, tritt der Fehler so auf.
Alle drei Sachen funktionieren nicht:
if (is_regular_file(file)) system("\"start C:\\Program Files\\Epic Games\\Fortnite\\FortniteGame\\Binaries\\Win64\\FortniteClient-Win64-Shipping.exe\"");
if (is_regular_file(file)) system("\"start C:\Program Files\Epic Games\Fortnite\FortniteGame\Binaries\Win64\FortniteClient-Win64-Shipping.exe\"");
if (is_regular_file(file)) system("\"start C:/Program Files/Epic Games/Fortnite/FortniteGame/Binaries/Win64/FortniteClient-Win64-Shipping.exe\"");
und auch ohne des "\" was bevor start steht und \"" was hinter dem Pfad steht geht es nicht
system("\"start C:/Program Files/Epic Games/Fortnite/FortniteGame/Binaries/Win64/FortniteClient-Win64-Shipping.exe\"");
Fast. :-)
Du hast zwei Möglichkeiten etwas auszuführen - Start brauchst du nicht unbedingt, kannst du aber nutzen.
Entweder:
system("start \"C:/Program Files/Epic Games/Fortnite/FortniteGame/Binaries/Win64/FortniteClient-Win64-Shipping.exe\"");
oder
system("\"C:/Program Files/Epic Games/Fortnite/FortniteGame/Binaries/Win64/FortniteClient-Win64-Shipping.exe\"");
Du musst also den Pfad in die Escapedten Anführungszeichen packen (\") - das hast du bei "Start" nicht getan, sondern "Start ..." dort hineingetan - dann geht es auch nicht, weil, wie gesagt, der Pfad nicht in Anführungszeichen für CMD ist. :-)
system("\"start C:\\Program Files\\Epic Games\\Fortnite\\FortniteGame\\Binaries\\Win64\\FortniteClient-Win64-Shipping.exe\"");
So hätte es auch geklappt, indem du "\" escapest (\\) - aber auch hier hast du die Anführungszeichen (\") vor "start" getan.
Danke!!!!! Das erste hat bei mir nicht funktioniert, dort hat sich nur ein cmd fenster von dem pfad geöffnet, aber des zweite hat funktioniert, vielen dank!
Heißt es bei dir denn überhaupt Program Files? oder ist es bei dir auf Deutsch?
Der Pfad muss schon richtig lauten.
hast du discord? würde dir gerne eine bildschirmaufnahme schicken wo ich es zeige
wenn man den ordner ansieht heißt er "Programme" aber in der zeile wo man den pfad kopieren kann im explorer heißt er dann "Program Files"
jetzt kommt dass C:Program nicht gefunden wurde