Script soll anderes Script öffnen.

  • Hi,


    Ich will das die letzte Aktion eines Scripts draus besteht ein weiteres Autoit Script zu starten bevor es sich schließt.

    Die einzige Möglichkeit die ich bislang gefunden habe, wäre es das folgende Script als exe zu compilieren und es im vorangegangenem Script

    mit den Befel Run() zu öffnen, das möchte ich aber nicht.


    Welche Möglichkeiten gibt es ein Script durch ein anderes Script zu öffnen.


    MfG
    I30R6

    Einmal editiert, zuletzt von I30R6 (16. September 2014 um 19:24)

  • Du kannst das Skript auch direkt als Skript ausführen, d.h. ohne es vorher kompilieren zu müssen.

    Hier findest du eine Funktion zum Ausführen von Skripten; einfach den Dateipfad als Parameter übergeben und es sollte funktionieren. Dazu muss nicht mal AutoIt auf dem PC installiert sein. Falls du Version 3.3.10.0 oder eine noch aktuellere Version von AutoIt benutzt musst du dieses Feature erst aktivieren, das sollte mit einem #pragma compile(AutoItExecuteAllowed, true) am Anfang des Skriptes funktionieren.

  • Wenn es allerdings nur um den eigenen Rechner geht, dann ist AutoIt ja wahrscheinlich installiert. Es sei gesagt, dass James' Variante die Elegantere ist, allerdings tut es hier auch ein simples ShellExecute.

    Kurze Erklärung: ShellExecute öffnet eine Datei mit dem in den Systemeinstellungen definiertem Standardprogramm. In diesem Fall übergibst du eine .au3-Datei, die mit dem AutoIt-Interpreter verknüpft ist.

  • Danke für eure Hilfe. :)


    Also mit ShellExecute hatte ich keine Probleme, aber die erste Variante habe ich leider nicht zum laufen bekommen. Zuvieles davon ist mir fremd.

    Im Grunde reicht mir aber die ShellExecute Variante aus.

    Intressehalber würde ich mich aber auch noch darüber freuen wenn mir jemand den Beispielscript mit der 1 Variante korrigiert, damit es läuft.

    Script_A soll Script_B öffnen...

    [autoit]

    ;Script_A

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    #pragma compile(AutoItExecuteAllowed, true)

    [/autoit][autoit][/autoit][autoit]

    #AutoIt3Wrapper_UseUpx=n ;Was ist das?

    [/autoit][autoit][/autoit][autoit]

    Global $Script = "C:\Users\...\Desktop\Beispielscripts\Script_B.au3"

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func AutoIt3ExecuteScript($Script)
    Return Run(StringFormat('"%s" /AutoIt3ExecuteScript "%s"', @AutoItExe, $Script))
    EndFunc

    [/autoit][autoit]

    ;Script_B
    ;____ Sinnlos MouseMove im Quadrat_____
    MouseMove (100,100,100)
    MouseMove (500,100,100)
    MouseMove (500,500,100)
    MouseMove (100,500,100)
    MouseMove (100,100,100)
    ;_______________________________________

    [/autoit]
  • Du hast eine Funktion AutoIt3ExecuteScript erstellt. Allerdings... Rufst du sie nirgendswo auf. :D

    [autoit]


    ;Script_A

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    #pragma compile(AutoItExecuteAllowed, true)

    [/autoit][autoit][/autoit][autoit]

    #AutoIt3Wrapper_UseUpx=n ;Was ist das?

    [/autoit][autoit][/autoit][autoit]

    Global $MyScript = "C:\Users\...\Desktop\Beispielscripts\Script_B.au3"
    AutoIt3ExecuteScript($MyScript)

    [/autoit][autoit][/autoit][autoit]

    Func AutoIt3ExecuteScript($Script)
    Return Run(StringFormat('"%s" /AutoIt3ExecuteScript "%s"', @AutoItExe, $Script))
    EndFunc

    [/autoit]