C++ CreateProcess

  • Ich probiere im moment ein bisschen mit C++ herum und habe auch einige Tutorials gelesen.
    Nun versuche ich die GTA exe zu starten was leider nicht so ganz funktioniert.
    Im Taskmanager sehe ich zwar das der Prozess gestartet ist, aber es öffnet sich nichts.
    Mein Code:


    Code
    CreateProcess(TEXT("D:\\Programme\\GTA San Andreas\\gta_sa.exe"), NULL,  NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &StartupInfo, &ProcessInfo);


    Ich hoffe ihr könnt mir helfen

    Hyper Code

    Wir entwickeln professionelle Ressourcen für FiveM, die auf verschiedenste Bedürfnisse zugeschnitten sind

    und stellen dabei stets die Kundenzufriedenheit in den Mittelpunkt.

    Mit einer Vielzahl von Ressourcen hast du zahlreiche Anpassungsmöglichkeiten, um sie zu deinem eigenen Projekt zu machen. Jede Ressource ist etwas Besonderes, da wir viel Liebe und Sorgfalt in alles stecken, was wir erschaffen.


    Besucht uns unter

    https://hyper-code.eu oder im Discord unter discord.gg/hypercode

  • Ich probiere im moment ein bisschen mit C++ herum und habe auch einige Tutorials gelesen.
    Nun versuche ich die GTA exe zu starten was leider nicht so ganz funktioniert.
    Im Taskmanager sehe ich zwar das der Prozess gestartet ist, aber es öffnet sich nichts.
    Mein Code:


    Code
    CreateProcess(TEXT("D:\\Programme\\GTA San Andreas\\gta_sa.exe"), NULL,  NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &StartupInfo, &ProcessInfo);


    Ich hoffe ihr könnt mir helfen

    Ich habe damals eine ähnliche Funktion genutzt, um Filme zu starten.
    Versuche einmal folgendes:

    Code
    system("D:\\Programme\\GTA San Andreas\\gta_sa.exe");


    Theoretisch, sollte das selbe Ergebnis damit erzielt werden :)


  • Das Spiel öffnet sich immer noch nicht, nur der Prozess erscheint in der Liste..

    Hyper Code

    Wir entwickeln professionelle Ressourcen für FiveM, die auf verschiedenste Bedürfnisse zugeschnitten sind

    und stellen dabei stets die Kundenzufriedenheit in den Mittelpunkt.

    Mit einer Vielzahl von Ressourcen hast du zahlreiche Anpassungsmöglichkeiten, um sie zu deinem eigenen Projekt zu machen. Jede Ressource ist etwas Besonderes, da wir viel Liebe und Sorgfalt in alles stecken, was wir erschaffen.


    Besucht uns unter

    https://hyper-code.eu oder im Discord unter discord.gg/hypercode

  • Bist du denn auch sicher, dass der Pfad stimmt?


    Denn bei dir ist der Pfad:

    Code
    GTA San Andreas\\gta_sa.exe


    Wobei er doch (soweit ich weiß) so sein sollte:

    Code
    Rockstar Games\\GTA San Andreas\\gta_sa.exe


    Also:

    Code
    "D:\\Programme\\Rockstar Games\\GTA San Andreas\\gta_sa.exe"
  • Der Pfad ist schon richtig, hab das extra dahin installiert.
    Und der Prozess taucht ja auch in der Prozessliste auf...

    Hyper Code

    Wir entwickeln professionelle Ressourcen für FiveM, die auf verschiedenste Bedürfnisse zugeschnitten sind

    und stellen dabei stets die Kundenzufriedenheit in den Mittelpunkt.

    Mit einer Vielzahl von Ressourcen hast du zahlreiche Anpassungsmöglichkeiten, um sie zu deinem eigenen Projekt zu machen. Jede Ressource ist etwas Besonderes, da wir viel Liebe und Sorgfalt in alles stecken, was wir erschaffen.


    Besucht uns unter

    https://hyper-code.eu oder im Discord unter discord.gg/hypercode

  • http://msdn.microsoft.com/en-u…s682425%28v=vs.85%29.aspx.


    Geh nochmal deinen Aufruf durch und schau dir an, was jeder Parameter der Funktion macht. Dann solltest du drauf kommen. Eigentlich braucht man dafür die API-Dokumentation gar nicht, man muss sich nur nochmal die Zeile wirklich in Ruhe durchlesen und schauen, was da eigentlich steht:


    Code
    CreateProcess(TEXT("D:\\Programme\\GTA San Andreas\\gta_sa.exe"), NULL,  NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &StartupInfo, &ProcessInfo);


    Edit: Zu der "system()" Methode: Diese wird eigentlich nicht verwendet, da hierbei zuerst ein Shellprozess gestartet werden muss, der dann erst den Befehl ausführt. Das ist eine Resourcenverschwendung. Wer also in C auf Windows ein Programm starten möchte, sollte CreateProcess verwenden. ShellExecute ist auch eher zweite Wahl, da man dafür eigentlich auch immer COM initialisieren müsste.

    3 Mal editiert, zuletzt von oernqsvfu_fgvaxg ()

  • Dankeschön, ich hab die lpCurrentDirectory gesetzt und dann gings :)

    Hyper Code

    Wir entwickeln professionelle Ressourcen für FiveM, die auf verschiedenste Bedürfnisse zugeschnitten sind

    und stellen dabei stets die Kundenzufriedenheit in den Mittelpunkt.

    Mit einer Vielzahl von Ressourcen hast du zahlreiche Anpassungsmöglichkeiten, um sie zu deinem eigenen Projekt zu machen. Jede Ressource ist etwas Besonderes, da wir viel Liebe und Sorgfalt in alles stecken, was wir erschaffen.


    Besucht uns unter

    https://hyper-code.eu oder im Discord unter discord.gg/hypercode