AutoIt

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
AutoIt
Entwickler Jonathan Bennett & Team
Aktuelle Version 3.3.10.2 (Beta 3.3.11.2)
(30. December 2013)
Betriebssystem Windows
Kategorie Skriptsprache
Lizenz Freeware
Deutschsprachig Ja (Hilfe von 3.3.8.1)
www.autoitscript.com

AutoIt ist eine Software zur Erstellung von Makros, mit denen Abläufe unter Microsoft Windows automatisiert werden können. AutoIt ist Freeware und läuft unter NT, 2000, XP, Vista, 7 und 8. Das Programm stellt dem Nutzer eine BASIC-ähnliche Skriptsprache zur Verfügung. Außerdem enthält es einen Interpreter und einen Compiler, mit dem ausführbare Dateien (exe-Dateien) erstellt werden können; damit können AutoIt-Skripte auch auf Computern ausgeführt werden, auf denen AutoIt nicht installiert ist.

Funktion[Bearbeiten]

AutoIt-Skripte simulieren unter anderem Tastenanschläge und Mausklicks. Der Ablauf kann davon abhängig gemacht werden, dass ein bestimmter Prozess läuft oder beendet ist, oder dass ein bestimmtes Fenster aktiviert, geöffnet oder geschlossen wird. Außerdem können Fenster minimiert, versteckt, aktiviert oder geschlossen werden; Dateien und Verzeichnisse können ausgeführt, kopiert, verschoben, umbenannt oder gelöscht werden. Auch der Inhalt der Zwischenablage und die Registrierungsdatenbank können bearbeitet werden. Mit der aktuellen Version 3 sind jetzt (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 definiertem 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[1] wurde AutoIt stark erweitert und zahlreiche Programmfehler wurden beseitigt. Außerdem können Skripte als a3x-Dateien abgelegt werden, und die GUI-Funktionen wurden verbessert.

Die aktuelle Version der deutschen Hilfe bekommt man auf AutoIt.de für die aktuelle Version 3.3.8.1.
Es existiert auch eine Online-Version der deutschen Hilfe-Übersetzung.

Beispiel für ein AutoIt-Skript[Bearbeiten]

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

Es wird ein Eingabefeld (englisch input box) angezeigt, die dazu auffordert, seinen Namen einzugeben. Der Name wird in die Variable $sName gespeichert.

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

Mit diesem Befehl wird ein Meldungsfeld (englisch message box) angezeigt, welches den Inhalt der Variable $sName ausgibt. Der Wert 64 kennzeichnet das Fenster als „Info-Box“ (möglich sind auch Warnungen, Fragen oder Fehlermeldungen).

Beispiel für ein erweitertes AutoIt-Skript[Bearbeiten]

#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("", 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 und fängt von vorne an.
 
Func _Put_on_FTP() ; Benutzerdefinierte Funktionen haben normalerweise den 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 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 Variable $sText geschrieben.
        FileClose($hFile) ; Die Datei wird geschlossen und die Ressourcen freigegeben
        $hFTP = _FTP_Open("TestFTP") ; Die FTP-Sitzung wird gestartet.
        $hFTP_Connection = _FTP_Connect($hFTP, $sIP, $sUser, $sPassword) ; Eine FTP-Verbindung wird zu dem Server 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.") ; wird eine Fehlermeldung 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.
                Else ; Wenn kein Fehler aufgetreten ist,
                        MsgBox(0, "Erfolg", "Die Datei wurde erfolgreich übertragen.") ; war die Operation ein Erfolg.
                EndIf ; Die If-Schleife wird geschlossen.
		EndIf ; Die erste If-Schleife 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[Bearbeiten]

  • Es existiert eine angepasste Version ("SciTE4AutoIt3") vonSciTE 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 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 Sachen sind bereits alle in SciTE4AutoIt3 integriert.

Siehe auch[Bearbeiten]

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

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Change-Log