AutoIt Script ausführen ohne AutoIt.exe

  • Moin,

    Irgendwo kam mal durch, dass jedes "Kompillierte" Skript (also als .exe) dazu befähigt ist ein Skript als .au3 auszuführen.

    Die Idee finde ich sehr gut, weil wenn man Programme hat die aus vielen teils relativ unabhängigen Skripten hat, muss man nur eine "Ausführ.exe" mit ins Archiv packen die dann alles startet. Der Rest kann dann als Code bleiben und beliebig modifiziert werden auch auf Coputern die kein AutoIt haben.

    Vllt ist das reine Fiktion, da ich es nicht zum laufen bringen konnte.

    Anbei mal meine Test-Skripte.
    Eines ist das Ausführende Skript (Das muss kompilliert (.exe) werden und soll anschließend .au3 Dateien ausführen können)
    Das Andere ist eine Dezimaluhr. (Die soll auf einem Rechner der kein AutoIt hat ausgeführt werden können.)

    lg
    Mars(i)

  • include doch einfach die autoit3.exe binär und entpacke diese in das Temp-Verzeichnis.
    Die letzte Zeile ruft dann die au3-Datei auf und führt sie aus ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Ach ja, warum kompliziert, wenn es auch einfach geht.
    Ich lese einfach selber zu wenig die Hilfe :rofl:
    Also für einen Commandline Aufruf würde ich das dann nach Eukalyptus's Beispiel so machen:

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=autoit_starter.exe
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    If $CmdLine[0] > 0 Then Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $CmdLine[1] & '"')
    Exit

    [/autoit]


    Die Datei kann dann nach kompilieren mit dem Parameter der au3-Datei aufgerufen werden.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Einen link zu ePvP sollte man tunlichst unterlassen.

    Diese Seite ist und bleibt Müll. Die wenigen die da wirklich was verstehen werden von der breiten Masse dummer Idioten ausgenutzt, während sie gleichzeitig nach Geld lechzen.

    @ Alle lieben Leute, die geholfen haben ;)
    Danke, nun ist mir auch klar, was vergessen wurde.: /AutoIt3ExecuteScript

    Damit ist mein Problem gelöst :P

    Edit:. Mit der Binär eingebauten .exe geht es. Ohne leider nicht. Nach dem "Kompillieren" ist das Skript nach wie vor nicht in der Lage .au3 Dateien auszuführen. Ich weiß nicht warum...^^

    Edit2:. Die Execute Variante aus dem ePvP verbrät dann die Leistung des Hauptskriptes. Es wird also kein neuer Prozess gestartet -> Nicht zweckmäßig.

    lg
    Mars(i)

  • Edit:. Mit der Binär eingebauten .exe geht es. Ohne leider nicht. Nach dem "Kompillieren" ist das Skript nach wie vor nicht in der Lage .au3 Dateien auszuführen. Ich weiß nicht warum...^^


    Ich habe damit auch immer wieder Probleme, wenn ich die UPX-Komprimierung deaktiviere funktioniert es aber.

  • bei mir wills nicht gehen, egal, wie ich es versuche.
    Ob mit oder ohne UPX (gerade getestet)

    Wenn ich folgendes:

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    If $CmdLine[0] > 0 Then Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $CmdLine[1] & '"')
    Exit

    [/autoit]

    per Wrapper ohne UPX zusammensetze kommt eine 631KB große exe raus die eigentlich ihren Job erledigen sollte.
    Ziehe ich aber ein beliebiges Skript darauf passiert einfach nichts...

    lg
    Mars(i)

  • über diese Methode werden keine includes geladen ;)
    Vielleicht ist das Dein Problem ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Die Dezimaluhr hat ja keine Includes.
    Und eigentlich müsste (sollte das Skript gestartet werden) alles korrekt ablaufen. Also auch das laden von includes.

    Das wäre doch mal ne Funktion die in AutoIt fehlt:
    RunAutoIt($sFileName)

    lg
    Mars(i)

  • Die DezimalUhr läuft bei mir via Drag & Drop ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)