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

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

verreisterNutzer  12.03.2021, 14:23

jetzt kommt dass C:Program nicht gefunden wurde

0
Dultus, UserMod Light   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.

0
verreisterNutzer  12.03.2021, 14:34
@Dultus, UserMod Light

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

0
Dultus, UserMod Light   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. :-)

0
Dultus, UserMod Light   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.

0
verreisterNutzer  12.03.2021, 14:43
@Dultus, UserMod Light

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!

0

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: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"

0
verreisterNutzer  12.03.2021, 14:15

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

0