Portabel AutoIt

  • Hallo

    Bin durch Zufall über dieses Forum gestolpert, aber es ist genau das, was ich suche.

    Wenn ihr jetzt noch meine Problem lösen könnt, bin ich überglücklich!

    Ich habe mein Autoit3 zusammen mit SciTe portabel eingerichtet, damit ich die Entwicklungsumgebung bequem überall nutzen kann.

    Folgendes Problem:

    Wenn ich andere Files über #include <file.au3> einbinden möchte, bekomme ich eine Fehlermeldung, dass er die Datei <file.au3> nicht lesen kann.
    Aber die Datei ist im richtigen Ordner und vorhanden!

    Weiß jemand, welche Parameter ich beim Kompilieren angeben muss, um den Pfad des include Ordners mitzugeben?
    Oder welche Parameter muss ich in der au3.properties verändern?

    Habe zudem noch 2 weitere Probleme zu SciTe:

    1. Wenn ich den Fileinstall befehl nutze, wird die Datei zwar eingebunden, beim ausführen aber nicht entpackt.
    Komischerweise funktioniert der Befehl, wenn ich das Script nur ausführe, sobald ich aber das Script kompiliere und dann manuell ausführe, wird die eingebundene Datei wieder nicht entpackt!


    2. Wenn ich in eine Datei öffnen möchte, dursucht er zuerst alle Unterverzeichnisse nach Quellcode Dateien.
    Wie kann ich eine andere Standartauswahl bewirken?


    Wichtig ist zu allen Lösungen, das nichts Statisch eingebunden wir, da der Laufwerksbuchstabe und der Pfad sich jedesmal ändern!


    Danke für eure Hilfe schon mal im voraus.

    MFG

    SNAKE

    P.S. Wenn die Prtable AutoIt33 Entwicklungsumgebung mal gut läuft, stell ich sie zur verfügung

    • Offizieller Beitrag

    Hallo und :willkommen:,

    ich fange mal mit dem FileInstall-Problem an, weil ich das Problem auch schon mal hatte. Bei mir lag es daran das der 2. Parameter (Zielpfad) nicht mit einem Backslash endete.

    Einen Parameter für Include-Verzeichnisse gibt es soviel ich weiss nicht. Die einzige Möglichkeit besteht darin ein Script zu schreiben, das die Registry-Schlüssel unter HKEY_CURRENT_USER\Software\AutoIt v3 und HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3 anpasst bzw. anlegt.

    Das sind allerdings kein Fehler von SciTE. SciTE ist "nur" ein Texteditor und ruft zum kompilieren die AutoIt3.exe aus.

    Die Standardauswahl für Datei öffnen ist soweit ich das sehe auch fest im Quellcode von SciTE eingestellt und kann nicht verändert werden.

  • Hallo,
    in der au3.properties kannst du unter "autoit3dir" den Autoit-Pfad festlegen.
    Der IncludePfad ist dann automatisch autoit3dir\Include, bzw. autoit3dir\beta\include.
    eddy_erpel

  • Hallo

    Danke für die Antworten.

    Das Problem mit dem Fileinstall war genau das beschriebene Problem.
    bernd670 Danke :]

    Mit dem Problem des Includverzeichnis gibt es bezüglich der Lösung nur ein Problem:
    Man braucht Adminrechte. Da dies aber auch an der Hochschule funktionieren soll und man dort keine Installrechte besitzt, müsste es noch eine andere Lösung geben.

    Eddy_Erpel
    Der Autoitpfad ist schon richtig angegeben. Der daraus resultierende Include-Pfad ist auch richtig. Leider funktioniert es doch nicht. X(

    Hoffe, es hat noch jemand einen Vorschlag.

    Danke

    SNAKE

  • Hallo,
    hier einmal mein Vorgehen für mein Mobiles-AutoIT.
    - Autoit (Stable & Beta) installieren
    - SciTE installieren
    Das Verzeichnis C:\Programme\Autoit3 auf den USB-Stick kopieren.
    Dann folgendes Script

    Spoiler anzeigen
    Code
    $handle=FileOpen(@ScriptDir & "\SciTE\au3.properties",0)
    $test=FileRead($handle)
    $test2=FileReadLine($handle,7)
    FileClose($handle)
    $handle=FileOpen(@ScriptDir & "\SciTE\au3.properties",2)
    $write=StringReplace($test,$test2,"autoit3dir=" & @ScriptDir)
    FileWrite($handle,$write)
    Run(@ScriptDir & "\SciTE\SciTE.exe")

    in das Autoit3-Verzeichnis auf dem USB-Stick kompilieren. Dann wird bei jedem Start das Verzeichnis angepasst und anschliessend SciTE aufgerufen. Dies habe ich schon längere Zeit so im Einsatz und soweit ohne Probleme.

    @Snake poste doch einmal Dein Vorgehen, dann finden wir vielleicht den Fehler schneller.
    eddy_erpel

  • Hallo

    So änlich habe ich es auch gemacht:

    #Compiler_Icon=SciTE.ico

    filecopy ("props\au3.properties.ne", "props\au3.properties",1)
    $file = Fileopen("props\au3.properties",1)
    filewriteline($file, "SciteDefaultHome="&@ScriptDir)
    filewriteline($file, "autoit3dir="&@ScriptDir&"\autoit3")

    fileclose($file)
    run("SciTe.exe")
    Exit

    Eddy_Erpel
    Und bei dir funktionirt der include Befehl?

  • Hallo

    Ich habe das Problem finden können. Da ich eigentlich immer nur die Beta benutze habe ich dieses Problem noch nicht festgestellt, denn die Beta findet das Include-Verzeichnis. Zu laufen bekommst du das indem Du, wie Bernd bereits gepostet hat, den Include-Pfad festlegst:

    Code
    $handle=FileOpen(@ScriptDir & "\SciTE\au3.properties",0)
    $oriFile=FileRead($handle)
    $autoitPfad=FileReadLine($handle,7)
    FileClose($handle)
    $handle=FileOpen(@ScriptDir & "\SciTE\au3.properties",2)
    $write=StringReplace($oriFile,$autoitPfad,"autoit3dir=" & @ScriptDir)
    FileWrite($handle,$write)
    RegWrite("HKEY_CURRENT_USER\SOFTWARE\AutoIt v3\AutoIt", "Include", "REG_SZ", StringTrimLeft($autoitPfad,11) & "\Include")
    Run(@ScriptDir & "\SciTE\SciTE.exe")


    Dann läuft auch die Prod-Version.
    eddy_erpel

  • Hallo

    Also, wenn ich das richtig verstehe, ist dein Script bis einschließlich Zeile 7 nichts anderes als meins:
    Das Autoit Verzeichnis in der au3.properties an das aktuelle Verzeichniss / Laufwerk anpassen.

    Nun zu Zeile 8 : Ich habe keine Rechte, in die Regestry zu schreiben !

    Zur Beta Version :
    Eddy_Erpel
    Welche Betaversion benutzt du genau?
    Wenn ich dich richtig verstehe, ist in der kommenden Version also dieses Problem beseitigt ?

    Danke

    SNAKE

  • Hallo

    Hab gerade mal die Version autoit-v3.1.1.126.zip umgestellt.

    Leider habe ich noch immer das Problem mit dem Include Verzeichniss.

    Eddy_Erpel

    Hast du Autoit installiert oder den Regestryeintrag geschrieben?
    Oder läuft alles einfach so ohne Problem?

    Wenn ich die Includdatei im selben Verzeichniss wie das Scrip habe, funktioniert das ganze. Liegt also nicht an irgenwelchen Rechten oder Fehleren, sonden nur an der erkennung des Includeverzeichnises.

    Kann ich dem Compiler nicht irgendwie den Regestryeintrag vorgaukeln?

    Danke

    SANKE

    • Offizieller Beitrag

    Hallo,

    in der Hilfe zu #include steht folgender Satz:

    Zitat

    Damit die Include-Verzichnis-Syntax (#include <file>) funktioniert, muss AutoIt mit einer geeigneten Installationsroutine installiert worden sein. Andernfalls wird das Verzeichnis nicht erkannt und stattdessen das Verichnis (@ScriptDir\Include) benutzt.

    Es geht also nur wenn die entsprechenden Eintrage in der Registry vorhanden sind.

  • Hallo,
    wieso hast Du denn keine Rechte in HKCU (Dort solltest Du eigentlich Schreibrechte haben)??? Ich benutze die 3.1.1.126 Beta. Komischerweise findet die Beta das Includeverzeichnis, sobald man den Pfad unter au3.properties anpasst, nur die Prod. macht es etwas schwieriger.
    Ich habe nur einmal die Installation vollzogen, alles auf meinen USB-Stick kopiert und bis jetzt läft es an jedem anderen PC ohne Installation.
    Tritt bei Dir das Problem bei der Beta wie auch bei der Prod. auf?
    eddy_erpel

  • Hallo

    bernd670
    Soweit war ich auch schon, habe mir aber gedacht, wo ein Wille, da auch ein Weg.

    Eddy_Erpel
    Sorry, war etwas falsch gelegen mit der Regestrie:
    Ich konnte den Wert eintragen, leider funktioniert es immer noch nicht. Fehlermeldung:
    ERROR: can't open include file <Array.au3>

    Wenn ich die Array.au3 in das Scriptverzeichniss packe, funktioniert es, als auch , wenn ich per Hand die Datei öffne.

    Ich habe auch die autoit-v3.1.1.126.zip entpackt und als neues AutoIt3 Verzeichniss benutzt. Leider funktioniert es nicht.
    Werde nachher mal installieren und dann nochmal ausprobieren.

    Der Fehler tritt bei beiden Versionen auf. sowohl bei der Pord. als auch bei der Beta.


    Trotzdem Danke und weiter so.
    Irgendwie werden wir das schon schaffen.

    MFG

  • Hallo

    Bins nochmal.

    Eddy_Erpel
    Welchen Editor benutzt du?
    Welche Version?

    Komisch finde ich nur, das ich zwar nicht Kompilieren kann, aber ich kann das Script ausführen !

    Hat dazu jemand eine Erklärung?

    MFG

    SANKE

  • Hallo,
    ich denke einmal ich habe den Fehler gefunden. Wenn ich das Script ausführe (F5) bekomme ich auch die selbe Fehlermeldung. Wenn ich es aber unter der Beta ausführe (Alt+F5) läuft es durch. Damit es auch unter der Prod-Umgebung läft müsste man das InstallDir (HKLM\Software\AutoIT v3\Autoit\InstallDir) auf den aktuellen Pfad anpassen. Oder aber die AutoIt3Wrapper-Datei anpassen (Zeile 104).
    Ich benutzt SciTE 1.69.
    eddy_erpel