Verknüpfung erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Es ist möglich, aber nicht gerade unkompliziert. Es lässt sich z.B. mit WSH umsetzen, einer in Windows eingebauten Scriptsprache. Wenn man in eine Textdatei mit Endung "vbs" VB Code schreibt, dann kann man diese mit einem Doppelklick von Windows ausführen lassen, eben auch um Verknüpfungen erstellen zu lassen. Ich hab mal eine Funktion im GM geschrieben die solch eine vbs Datei erstellt, dann ausführt und danach wieder löscht. Zugegeben nicht gerade der eleganteste Weg, aber er sollte funktionieren, denn soweit ich mich richtig informiert habe ist WSH Standard in einigermaßen aktuellen Windows Versionen.

    GML-Quellcode

    1. /* Erstellt eine Verknüpfung mit folgenden Parametern:
    2. * argument0 : Dateipfad der Verknüpfung
    3. * argument1 : Zielprogramm
    4. * argument2 : Argumente die dem Zielprogramm übergeben werden sollen
    5. * argument3 : Arbeitsverzeichnis für die Ausführung
    6. * argument4 : Dateipfad zur Icon, dass angezeigt werden soll, oder zum Programm, das ein Icon enthält
    7. * argument5 : Kommentar zur Verknüpfung
    8. * argument6 : Tastenkombination
    9. * argument7 : Fenstereinstellung bei Start :
    10. * 1 für normales Fenster
    11. * 2 für minimiertes Fenster
    12. * 3 für maximiertes Fenster
    13. */
    14. var h;
    15. h = file_text_open_write("shortcut.vbs");
    16. file_text_write_string(h,'Set Shell = CreateObject("WScript.Shell")
    17. Set link = Shell.CreateShortcut("'+filename_change_ext(argument0,".lnk")+'")
    18. link.Arguments = "'+argument2+'"
    19. link.Description = "'+argument5+'"
    20. link.HotKey = "'+argument6+'"
    21. link.IconLocation = "'+argument4+'"
    22. link.TargetPath = "'+argument1+'"
    23. link.WindowStyle = '+string(argument7)+'
    24. link.WorkingDirectory = "'+argument3+'"
    25. link.Save');
    26. file_text_close(h);
    27. execute_program("wscript","shortcut.vbs",true);
    28. file_delete("shortcut.vbs");
    Alles anzeigen

    Hier noch schnell ein Beispielaufruf um eine Verknüpfung "test" im gleichen Ordner wie das Spiel zu erstellen, die auf "c:\blah\app.exe" verweist:

    GML-Quellcode

    1. create_shortcut("test","c:\blah\app.exe","","c:\blah","C:\Programme\Game_Maker6\Sprites\various\Bear.ico","Tolle Verknüpfung","",1);
  • Was meinst du mit Zielordner? Du musst eine Zieldatei für die zu erstellende Verknüpfung angeben und die Datei des auszuführenden Programms.
    Schreib mal folgendes in eine Textdatei und gib ihr anschließend die Endung ".vbs". Dann führ diese Datei mal mit einem Doppelklick aus. Wenn dann im gleichen Ordner eine Verknüpfung namens "test" erscheint hast du wohl irgendwo im GM falsche Parameter angegeben.

    Quellcode

    1. Set Shell = CreateObject("WScript.Shell")
    2. Set link = Shell.CreateShortcut("test.lnk")
    3. link.Arguments = "1 2 3"
    4. link.Description = "test shortcut"
    5. link.HotKey = "CTRL+ALT+SHIFT+X"
    6. link.IconLocation = "app.exe,1"
    7. link.TargetPath = "c:\blah\app.exe"
    8. link.WindowStyle = 3
    9. link.WorkingDirectory = "c:\blah"
    10. link.Save
  • Ah ja, jetzt habe ich es! Danke!

    Ich hatte tatsächlich link.WorkingDirectory etwas falsch verstanden. Ich habe dort den Pfad und bei Shell.CreateShortcut lediglich den Namen der gewünschten Verknüpfung angegeben. Aber jetzt funktioniert's ;)

    Wozu ist denn dieses link.WorkingDirectory, wenn da was völlig schwachsinniges stehen kann und das Ganze trotzdem funktioniert?
    kostenlose Android-Spiele:
    hexavirScribble Triple

    Mr. Peperonico auf Facebook
  • Im GM gibt es sogar die gleichnamige Variable

    GML-Quellcode

    1. working_directory

    welche im Normalfall den Pfad der ausgeführten exe enthält. Indem du link.WorkingDirectory setzt, kannst du dem Programm sozusagen vorgaukeln es würde in einem anderen Verzeichnis ausgeführt. Für gewöhnlich sollte also link.WorkingDirectory den Ordner enthalten, in dem die verknüpfte Anwendung liegt.
  • Da ich jetzt kein neues Thema eröffnen möchte, frage ich jetzt mal hier. :rolleyes:
    Wie kann ich über den Game Maker einen Batch öffnen?
    Computer können uns bei Entscheidungen helfen.
    Bei welchen müssen wir entscheiden.


    ________________________________________________________________________________________________________________
    Diese Signatur wurde bereits 84 mal editiert, zuletzt von »KillerZwerk« (Jetzt, 14:56)
  • Ich hab in die SuFu einfach mal Batch eingegeben hab aber nicht brauchbares gefunden.
    Ich werde das dann mal ausprobieren wenn ich wieder an meinen Notebook bin.
    Computer können uns bei Entscheidungen helfen.
    Bei welchen müssen wir entscheiden.


    ________________________________________________________________________________________________________________
    Diese Signatur wurde bereits 84 mal editiert, zuletzt von »KillerZwerk« (Jetzt, 14:56)
  • Ich hab es mit execute_program('test.bat','',false) ausprobiert, aber der öffnet die Datei unendlich mal. ^^
    Computer können uns bei Entscheidungen helfen.
    Bei welchen müssen wir entscheiden.


    ________________________________________________________________________________________________________________
    Diese Signatur wurde bereits 84 mal editiert, zuletzt von »KillerZwerk« (Jetzt, 14:56)
  • [InUnendlichWeiseGlaßkugelSchau]Ich sehe, das du execute_program('test.bat','',false) im Step-Event ausführst!
    Wähle einen Anderen Event, der nur einmal ausgeführt wird und du wirst erfolg haben![\InUnendlichWeiseGlaßkugelSchau]

    vielleicht ist es aber auch ein Fehler in der Bat. Wer weiß das schon ohne genau informationen ;)
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • Ich habe den Script aber nicht im Step Event, sondern im wenn ich auf Enter drücke...
    Und die Batch Datei ohne Game Maker öffnet sich nicht unendlich mal.
    In der Batch Datei steht nur ein Wort: write
    Computer können uns bei Entscheidungen helfen.
    Bei welchen müssen wir entscheiden.


    ________________________________________________________________________________________________________________
    Diese Signatur wurde bereits 84 mal editiert, zuletzt von »KillerZwerk« (Jetzt, 14:56)
  • Die Glaskugel funktioniert wieder. :)
    Computer können uns bei Entscheidungen helfen.
    Bei welchen müssen wir entscheiden.


    ________________________________________________________________________________________________________________
    Diese Signatur wurde bereits 84 mal editiert, zuletzt von »KillerZwerk« (Jetzt, 14:56)