Execute Shell als Administrator

  • GM 8
  • Execute Shell als Administrator

    Hallo allerseits,

    Ich hab ein kleines Programmchen gemacht und möchte ein exe executen.. Nun wollte ich mal fragen ob es geht diese *.exe als Administrator auszuführen. Zum Beispiel: Man hängt zum Execute Shell Shortcut Commands hinzu.. C:\game.exe -runasadmin oder eben sowas ähnliches.. Kennt ihr so eine Lösung?

    Ich hätte da ne Lösung eine Verknüpfung zur exe zu machen und die als Admin zu starten, jedoch klappt das nicht... Wieso - weis ich nicht. Er will ihn einfach net als Admin ausführen :/

    Bitte um Hilfe. Danke.
  • Hi

    Wenn du mit einem Programm ein anderes als Administrator ausführen willst musst du auch das erste Programm als Administrator ausführen.
    Wenn du willst ,dass das erste Programm als Administrator ausgeführt wird:
    - Rechtsklick > Eigenschaften > Kompatibilität > Hacken bei "Als Administrator ausführen". (siehe Bild unten)
    oder
    - Nenn das Programm "setup.exe" oder "update.exe" . Programme mit diesem Namen startet Windows automatisch als Administrator.

    MfG xxskxx
    -
  • Ja, aber bei mir ist es so, dass die User selbst den Pfad auswählen können und die exe dann einfach geladen wird. Der User muss aber auch einstellen ob es mit Admin ausgeführt werden kann. Geht das aus GM heraus? Also dass der User im Game Maker "als Admin" anklickt und es dann auch so startet? ^^
  • Extra mal den GM 8.0 installiert um das mal auszuprobieren, weil mich der Ehrgeiz packte (buah ist das neue Logo hässlich... aber egal)

    GML-Quellcode

    1. var file_id;
    2. file_id = file_text_open_write(temp_directory + "\elevation.vbs");
    3. file_text_write_string(file_id,"dim objShell");
    4. file_text_writeln(file_id);
    5. file_text_write_string(file_id,'set objShell = CreateObject("Shell.Application")');
    6. file_text_writeln(file_id);
    7. file_text_write_string(file_id, 'objShell.ShellExecute "' + argument0 +'", "", "", "runas"');
    8. file_text_writeln(file_id);
    9. file_text_write_string(file_id, "set objShell = nothing");
    10. file_text_close(file_id);
    11. execute_program("wscript.exe", temp_directory + "\elevation.vbs", true);
    12. file_delete(temp_directory + "\elevation.vbs");
    Alles anzeigen


    Kopiere diesen GML Code in ein neues Skript namens elevate. Rufe das Skript dann mit dem Programm, das gestartet werden soll, als Parameter auf. Beispielsweise:

    GML-Quellcode

    1. elevate("notepad.exe")


    Zwar von hinten durch die Brust ins Auge, aber es funzt. Der GM bietet selbst nicht die Möglichkeit an bei Shellexecute ein anderes Verb als execute zu wählen.