Autoit direkt aus dem Browser

  • Hi,

    ich habe ein kleines Script geschrieben welches es ermöglicht Autoitscripte direkt aus dem Browser herraus auszuführen. Dazu muss auch nicht Autoit auf dem Rechner installiert sein, es reicht wenn folgende kleine exe einmalig auf dem Rechner ausgeführt wurde:

    Spoiler anzeigen
    [autoit]


    #RequireAdmin
    If $CmdLine[0] > 0 Then
    FileDelete(@TempDir & "\temp.au3")
    $url = StringReplace($CmdLine[1], "autoit://","http://")
    InetGet($url, @TempDir & "\temp.au3",16)
    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @TempDir & "\temp.au3" & '"')
    Else
    RegWrite("HKEY_CLASSES_ROOT\autoitrun", "", "REG_SZ", "URL:Autoit")
    RegWrite("HKEY_CLASSES_ROOT\autoitrun", "URL Protocol", "REG_SZ", "")
    RegWrite("HKEY_CLASSES_ROOT\autoitrun\shell", "", "REG_SZ", "open")
    RegWrite("HKEY_CLASSES_ROOT\autoitrun\shell\open\command", "", "REG_SZ", '"' & @AutoItExe & '" "%1"')
    MsgBox(0, "", "Protokoll autoitrun registriert")
    EndIf

    [/autoit]

    Die Links zu den Autoitscripten auf der Webseite müssen folgendermaßen aussehen:

    Spoiler anzeigen
    Code
    <a href="autoitrun://www.dragonspace.de/scripte/test.au3">Testscript starten</a>

    Wer es testen will kann einfach das Script compilieren, einmal ausführen und die Seite https://autoit.de/www.dragonspace.de aufrufen. Dort wird nach einem klick auf "Testscript starten" ein Script mit dem Inhalt "MsgBox(0,"","geht")" ausgeführt.

    Hinweiß: Der Firefox erkennt zwar das Protokoll weißt es aber nicht richtig der exe zu. Wenn also die Frage danach kommt mit welche Anwendung das Protokoll ausgeführt wird einfach die exe auswählen. Das ist auch nur einmalig nötig. Im IE geht es direkt.


    Auf Wunsch noch ein Script um den Eintrag wieder zu entfernen:

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    RegDelete("HKEY_CLASSES_ROOT\autoitrun")

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    2 Mal editiert, zuletzt von chip (31. Oktober 2011 um 10:30)

  • Welches Betriebssystem hast du?
    Kann es sein dass du das grade hast lokal versucht zu testen? Sprich html und script auf dem lokalen Rechner?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hi chip, füge mal ein #RequireAdmin zu deinem Script hinzu, dann läuft es auch unter Windows 7 und Vista

    Ach ja, könntest du deinem Script auch eine Deinstallationsfunktion hinzufügen, ich finde es immer ein wenig umständlich, die Werte per Hand aus der Registry auszutragen

  • Cheater Dieter ich habs unter Win 7 geschrieben ;). Habs aber mal reingemacht.


    Eintrag entfernen:

    [autoit]

    #RequireAdmin
    RegDelete("HKEY_CLASSES_ROOT\autoitrun")

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Cheater Dieter ich habs unter Win 7 geschrieben ;). Habs aber mal reingemacht.

    Du hast aber die UAC deaktiviert oder? Denn seit wann gehen denn die Registryfunktionen unter 7 und Vista ohne Adminrechte?

    Bei mir kommt leider ein Fehler

    Du musst das Script komplimeren und erst dann ausfühen.

  • Sollte es ernsthaft Leute geben die sie an haben *lach*.

    Anwender wie ich, welche ohne Adminrechte arbeiten (der Sicherheit wegen zu empfehlen), lieben die UAC.

    Man kann den ganzen lieben Tag arbeiten ohne Adminrechte, und wenn ein Programm (z.B. auch Autoit mit #RequireAdmin) kommt, fix das Adminkennwort und alles läuft wie geschmiert. Früher musste man erst das Tool wieder mit "RunAs" starten !

    Aber um beim Thema zu bleiben:

    Nutzt doch einfach "HKCU\Software\Classes\...." der Registryschlüssel macht meiner bisherigen Erfahrung nach genau das selbe wie "HKCR", nur halt für den aktuellen User.
    Und dort darf auch jeder User, egal ob Admin oder nicht, hineinschreiben.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Ich nutze das ganze grade für User ohne Adminrechte sprich ich führe das einmal manuell aus und das wars dann. Wer es lieber auf Userebene will steht das natürlich frei es zu ändern.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.