AutoIt

AutoIt i​st eine Software z​um Ausführen v​on Skripten, m​it denen hauptsächlich Abläufe u​nter Microsoft Windows automatisiert, a​ber auch komplette Windows-Programme geschrieben werden können. AutoIt i​st Freeware u​nd läuft u​nter NT, 2000, XP, Vista, 7, 8 u​nd 10. Bis Version 2 w​ar es Open-Source u​nd auch v​on Version 3 wurden Teile d​es Quellcodes, u​nter einer restriktiven Lizenz, veröffentlicht. Aktuell s​ind nur n​och einige Dokumentationsbuilddateien abrufbar.[1] Das Programm stellt d​em Nutzer e​ine BASIC-ähnliche Skriptsprache z​ur Verfügung. Außerdem enthält e​s einen Interpreter u​nd einen Compiler, m​it dem ausführbare Dateien (exe-Dateien) erstellt werden können; d​amit können AutoIt-Skripte a​uch auf Computern ausgeführt werden, a​uf denen AutoIt n​icht installiert ist.

AutoIt
Basisdaten
Entwickler Jonathan Bennett & Team
Erscheinungsjahr Januar 1999
Aktuelle Version 3.3.14.5
(16. März 2018)
Betriebssystem Windows
Programmiersprache C++
Kategorie Skriptsprache
Lizenz Freeware
deutschsprachig ja
www.autoitscript.com

Funktion

AutoIt-Skripte simulieren u​nter anderem Tastenanschläge u​nd Mausklicks. Der Ablauf k​ann davon abhängig gemacht werden, d​ass ein bestimmter Prozess läuft o​der beendet ist, o​der dass e​in bestimmtes Fenster aktiviert, geöffnet o​der geschlossen wird. Außerdem können Fenster minimiert, versteckt, aktiviert o​der geschlossen werden; Dateien u​nd Verzeichnisse können ausgeführt, kopiert, verschoben, umbenannt o​der gelöscht werden. Auch d​er Inhalt d​er Zwischenablage u​nd die Registrierungsdatenbank können bearbeitet werden. Mit Version 3 s​ind (Stand August 2008) folgende Operationen möglich:

  • Erstellen von GUIs inklusive Nachrichtenfenstern und Eingabeboxen
  • Automatisches Senden von Nutzereingaben und Tastenanschlägen an Anwendungen sowie individuelle Steuerung innerhalb von Anwendungen
  • Nutzung von COM (Component Object Modelling)-Objekten
  • Aufruf von Funktionen einer Win32-DLL
  • Aufruf von Funktionen aus der WinAPI
  • Ausführen von Konsolen-Applikationen und Zugriff auf Standard-Datenströme
  • Einbinden von Dateien in die kompilierte Datei, die zu einem definierten Zeitpunkt extrahiert werden können
  • Abspielen von Sound-Dateien, Pause, Weiter, Stopp, Suchen, aktuelle Wiedergabeposition sowie Länge des Sounds
  • Ausführung komplizierter mathematischer Berechnungen
  • Kommunikation via TCP- und UDP-Protokoll
  • Unicode-Unterstützung ab Version 3.2.4.0
  • Unterstützung von ActiveX-Abläufen (WSH/VBScript) mit der Erweiterung „AutoItX“
  • Datenbankzugriff (zum Beispiel auf SQLite [im Installationspaket])
  • Automatisierung des Internet Explorers
  • Automatisierung von Microsoft Word und Microsoft Excel

Mit Version 3.2[2] w​urde AutoIt s​tark erweitert u​nd zahlreiche Programmfehler wurden beseitigt. Außerdem können Skripte a​ls a3x-Dateien abgelegt werden, u​nd die GUI-Funktionen wurden verbessert.

Beispiel für ein AutoIt-Skript

$sName = InputBox("Fenstertitel", "Geben Sie hier Ihren Namen ein!")

Es w​ird ein Eingabefeld (englisch input box) angezeigt, d​as dazu auffordert, seinen Namen einzugeben. Der Name w​ird in d​ie Variable $sName gespeichert.

MsgBox(64, "Fenstertitel", "Hallo " & $sName & "!")

Mit diesem Befehl w​ird ein Meldungsfeld (englisch message box) angezeigt, welches d​en Inhalt d​er Variablen $sName ausgibt. Der Wert 64 kennzeichnet d​as Fenster a​ls „Info-Box“ (möglich s​ind auch Warnungen, Fragen o​der Fehlermeldungen).

Beispiel für ein erweitertes AutoIt-Skript

#cs	Startet einen Kommentar-Block

Standard-Präfixe für Variablen:

	- $h 	- Handle von z. B. einem Fenster oder einer Datei
	- $id 	- ID's von Controls, wie z. B. Buttons und Eingabefelder
	- $s	- Strings (Zeichenketten)
	- $i	- Integers (Ganzzahlen)

	Variablennamen werden normalerweise in Englisch verfasst! (Kein Standard)

#ce	; Beendet einen Kommentar-Block


#include <FTPEx.au3> ; Einbinden von mehreren vordefinierten Scripten.
#include <GUIConstantsEx.au3>

;############# Änderbare Daten ################
$sIP = "IP von FTP-Server"
$sUser = "Benutzername vom FTP-Benutzer"
$sPassword = "Passwort vom FTP-Benutzer"
$sFTP_Path = "Pfad auf dem Server"
;##############################################

$hGUI = GUICreate("TestGUI", 445, 339) ; In der Mitte des Bildschirms wird mit der X-Koordinate 445, und der Y-Koordinate 339 ein Fenster gezeichnet.
GUISetBkColor(0xBFCDDB) ; Die Hintergrundfarbe wird vom Standard geändert.
$idSend = GUICtrlCreateButton("Versenden", 0, 288, 203, 49) ; Der "Versenden"-Knopf wird erstellt.
$idEdit = GUICtrlCreateEdit("" target="_blank" rel="nofollow", 0, 0, 441, 289) ; Ein Eingabefeld wird erstellt.
GUICtrlSetData($idEdit, "Beispiel-Text" & @CRLF & "Nächste Zeile") ; Ein Text wird in das Eingabefeld geschrieben. @CRLF markiert einen Zeilenumbruch.
GUICtrlSetBkColor($idEdit, 0xC0C0C0) ; Die Hintergrundfarbe des Eingabefeldes wird geändert.
GUISetState(@SW_SHOW) ; Das Fenster wird angezeigt.

While 1 ; Eine While-Schleife wird geöffnet, die immer wieder bestimmte Sachen abfragt. Endlosschleife, in diesem Fall die "Messageloop" des Fensters.
        $iMsg = GUIGetMsg() ; Die Variable die abgefragt werden soll, wird immer wieder neu erstellt. (Einmal pro durchlauf der Schleife.)
        Switch $iMsg ; Die Variable wird als Ereignisauslöser definiert.
            Case $GUI_EVENT_CLOSE ; Falls der "Schließenknopf"(X oben rechts in der Ecke) gedrückt wird,
                Exit ; beendet sich das Script.
            Case $idSend ; Falls der "Versenden"-Button gedrückt wird,
                _Put_on_FTP() ; wird die "_Put_on_FTP" Funktion ausgeführt.
        EndSwitch ; Die Abfrage der Variable $nMsg wird beendet.
WEnd ; Markiert das Ende einer "While"-Schleife(n) definition. Falls die Schleife endet, arbeitet das Skript von hier weiter.

Func _Put_on_FTP() ; Benutzerdefinierte Funktionen haben normalerweise das Präfix "_" und der Name sollte auch in Englisch gehalten sein.
        Local $sFilePath = "ftp.txt" ; Eine lokale Variable wird deklariert und ein Wert zugewiesen (diese ist nur in dieser Funktion verfügbar).

        $hFile = FileOpen($sFilePath, 10) ; Eine Datei wird zum Schreiben geöffnet, und falls sie nicht existiert, wird diese erstellt.
        $sText = GUICtrlRead($idEdit) ; Der Text aus dem Eingabefeld wird eingelesen.
        FileWrite($hFile, $sText) ; In die zuvor geöffnete Datei wird der Text aus der Variablen $sText geschrieben.
        FileClose($hFile) ; Die Datei wird geschlossen und die Ressourcen wird freigegeben.
        $hFTP = _FTP_Open("TestFTP") ; Die FTP-Sitzung wird gestartet.
        $hFTP_Connection = _FTP_Connect($hFTP, $sIP, $sUser, $sPassword) ; Eine FTP-Verbindung zum angegebenen Server wird aufgebaut.
        If @error <> 0 Then ; Falls @error ungleich 0 ist (ein Fehler ist aufgetreten),
                MsgBox(0, "Error", "Der FTP-Server scheint nicht erreichbar zu sein.") ; Eine Fehlermeldung wird ausgegeben.
            ElseIf @error = 0 Then ; Falls @error gleich 0 ist (kein Fehler ist aufgetreten),
                _FTP_FilePut($hFTP_Connection, $sFilePath, $sFTP_Path) ; wird Die Testdatei auf den Server geschrieben.
                If @error Then ; Falls es einen Fehler gibt, ...
                        MsgBox(0, "Error", "Es trat ein Fehler beim Übertragen auf.") ; ... wird eine Fehlermeldung angezeigt, ansonsten ...
                    Else ; Wenn kein Fehler aufgetreten ist,
                        MsgBox(0, "Erfolg", "Die Datei wurde erfolgreich übertragen.") ; ... war die Operation erfolgreich.
                EndIf ; Die If-Abfrage wird geschlossen.
        EndIf ; Die erste If-Abfrage wird geschlossen.
        _FTP_Close($hFTP) ; Die FTP-Verbindung wird geschlossen und die FTP-Sitzung wird beendet.
        FileDelete($sFilePath) ; Die temporäre Datei wird gelöscht.

        Return ; Funktion beenden und mit der eigentlichen Skript-Ausführung fortfahren.
EndFunc ; Markiert das Ende einer Funktion.

Erweiterungen und Zusatzprogramme

  • Es existiert eine angepasste Version ("SciTE4AutoIt3") von SciTE als integrierte Entwicklungsoberfläche (IDE) für AutoIt. Der Freeware-Programm-Editor unterstützt Syntaxhervorhebung sowie Autovervollständigen und einige Makros zur Erstellung häufig benötigter Syntaxelemente. SciTE4AutoIt3 steht kostenlos zum Download auf der AutoIt-Homepage zur Verfügung.
  • Über sogenannte User Defined Functions (UDFs) oder auch Includes stehen zahlreiche Zusatzfunktionen zur Verfügung; durch von der Community erstellte Erweiterungen umfasst der aktuelle Funktionsumfang im Vergleich zur obigen Liste weitaus mehr.
  • Der KODA-Form-Designer ermöglicht die vereinfachte Erstellung grafischer Oberflächen (GUI, Graphical User Interfaces) für AutoIt-Skripte.
  • Tidy „reinigt“ ein AutoIt-Skript, indem es Einrückungen, Groß-/Kleinschreibungen, Kommentare und einiges mehr korrigiert.
  • Mit dem CodeWizard können Messageboxen (Nachrichtenfenster), Inputboxen (Eingabefenster) und vieles mehr generiert werden. Es existiert eine Onlineversion des Messagebox-Generators.
  • AutoIt Window Info ist eine Erweiterung, die dazu dient, Informationen eines Fensters oder des Mauszeigers auszulesen (z. B. die Fenster- oder Mausposition, Pixelfarben, Control-Koordinaten).
  • Die oben genannten Punkte sind bereits alle in SciTE4AutoIt3 integriert.

Siehe auch

  • AutoHotkey – Alternative Software unter Open-Source-Lizenz, die sich aus der Version 2 von AutoIt ableitet

Einzelnachweise

  1. Jon: AutoIt Source Code. In: AutoItScript Forum. 8. Februar 2005, abgerufen am 4. September 2018 (englisch).
  2. Change-Log
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.