Anderes/Externes Programm mit C++ starten?

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


verreisterNutzer  12.03.2021, 14:23

jetzt kommt dass C:Program nicht gefunden wurde

Dultus  12.03.2021, 14:23
@verreisterNutzer

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.

Dultus  12.03.2021, 14:27
@verreisterNutzer

Poste es bitte nochmals eins zu eins als Kommentar. Wenn du eins der beiden nicht richtig gemacht hast, tritt der Fehler so auf.

verreisterNutzer  12.03.2021, 14:34
@Dultus

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

Dultus  12.03.2021, 14:38
@verreisterNutzer
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. :-)

Dultus  12.03.2021, 14:41
@verreisterNutzer
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.

verreisterNutzer  12.03.2021, 14:43
@Dultus

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.


verreisterNutzer  12.03.2021, 14:15

hast du discord? würde dir gerne eine bildschirmaufnahme schicken wo ich es zeige

verreisterNutzer  12.03.2021, 14:13

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"