AutoIt - Kostenlose Windows-Skriptsprache für Automatisierung, Compiler & IDE

AutoIt – kostenlose Windows‑Skriptsprache für Automatisierung: Skripte zu EXE kompiliert, SciTE‑IDE, Compiler und umfangreiche UDF‑Bibliotheken für effiziente GUI‑ und Prozessautomatisierung

Autor: Leandro Alegsa

AutoIt /_ɔːtoʊ ɪt/ ist eine Freeware-Programmiersprache für Microsoft Windows. Sie wurde speziell entwickelt, um Aufgaben in der Windows-Umgebung zu automatisieren, etwa Tastatureingaben oder Mausklicks zu simulieren, Fenster zu steuern und Programme zu steuern. AutoIt eignet sich sowohl für kleine Makros als auch für komplexere Automatisierungsprogramme.

Die Entwicklung von AutoIt lässt sich grob in zwei Phasen unterscheiden: In den Versionen 1 und 2 war die Sprache primär darauf ausgelegt, Benutzeraktionen zu simulieren; Skripte arbeiteten vorwiegend mit einfachen, statement-gesteuerten Befehlen und wurden oft als Makros bezeichnet. Ab Version 3 wurde die Sprache deutlich erweitert und reorganisiert. Die Syntax von Version 3 ähnelt nun der Programmiersprache BASIC und macht AutoIt zu einer Programmiersprache für allgemeine Zwecke. AutoIt unterstützt komplexere Datentypen, etwa Arrays, und bietet strukturiertere Programmierkonstrukte.

Wichtige Merkmale und Fähigkeiten

  • Simulieren von Tastatur- und Mausaktionen sowie Window- und Control-Manipulation (z. B. gezieltes Senden von Eingaben an Fenstersteuerlemente).
  • Erstellen eigener grafischer Benutzeroberflächen (GUIs) mit eingebauten Funktionen.
  • Interaktion mit COM-Objekten, Aufrufe von DLLs und Nutzung der Windows-API über entsprechende Funktionen.
  • Datei- und Registry-Zugriff, Netzwerkfunktionen, Prozess- und Serviceverwaltung.
  • Erweiterbarkeit durch eine große Sammlung von UDFs (User Defined Functions, „Benutzerdefinierte Funktionen“), die zusätzliche Funktionalität bereitstellen.

Ein besonderes Merkmal von AutoIt ist, dass ein Skript in eine eigenständige ausführbare Datei (.exe) umgewandelt werden kann. So erzeugte Programme laufen auf Rechnern, auf denen der AutoIt-Interpreter nicht installiert ist. Der mitgelieferte Compiler (Aut2Exe) erlaubt zudem das Einbetten von Symbolen und Ressourcen sowie einfache Einstellungen zur Verteilung.

Entwicklungswerkzeuge

  • AutoIt liefert eine eigene, speziell angepasste integrierte Entwicklungsumgebung (IDE), die auf dem freien SciTE-Editor basiert. Diese Umgebung enthält den Compiler, die Hilfedateien und typische Komfortfunktionen wie Syntaxhervorhebung, Autovervollständigung und Debugging-Hilfen.
  • Die umfangreiche Offline-Hilfe (Helpfile) und zahlreiche Beispielskripte unterstützen Einsteiger und Fortgeschrittene beim Lernen und Einsatz der Sprache.

Typische Einsatzbereiche

  • Automatisiertes Testen von Desktop-Anwendungen
  • Routineaufgaben wie Datei-Management, Datensicherung oder Batch-Verarbeitung
  • Erstellen von kleinen Hilfsprogrammen und Tools für den Büroalltag
  • Erstellung von Installations- oder Konfigurationsskripten

Community, Bibliotheken und Sicherheit

Die AutoIt-Community stellt viele zusätzliche Bibliotheken (UDFs), Beispielskripte und Tutorials zur Verfügung. Dadurch lassen sich zusätzliche Funktionen wie erweiterte GUI-Elemente, Netzwerkprotokolle oder spezialisierte Hardware-Ansteuerung leicht nachrüsten. Beim Einsatz von kompilierten AutoIt-Programmen sollten Entwickler jedoch auf mögliche False-Positives bei Antivirenprogrammen achten und bei Verteilung Signaturen/Code-Signing in Betracht ziehen. Wie bei jeder mächtigen Automatisierungssprache besteht auch hier das Risiko des Missbrauchs, deshalb ist verantwortungsbewusster Einsatz wichtig.

Zusammengefasst bietet AutoIt eine leicht zugängliche, aber leistungsfähige Möglichkeit zur Automatisierung von Aufgaben unter Windows: von einfachen Makros bis zu komplexen Programmen mit grafischer Oberfläche und erweiterten Systemfunktionen.

 Bildschirmfoto eines typischen AutoIT-SkriptsZoom
Bildschirmfoto eines typischen AutoIT-Skripts

Merkmale

  • Skriptsprache mit BASIC-ähnlicher Struktur für Windows
  • Kompilieren in eigenständige ausführbare Dateien
  • Zusatzbibliotheken und -module für bestimmte Anwendungen oder Apps
  • Unterstützt TCP- und UDP-Protokolle
  • Unterstützt Komponenten-Objektmodell (COM)
  • Aufruf von Funktionen in DLL-Dateien
  • Konsolenanwendungen ausführen und auf die Standard-Streams zugreifen
  • Einschließen von Datendateien in die kompilierte Datei, die beim Ausführen extrahiert werden sollen
  • Erstellen grafischer Benutzeroberflächen, einschließlich Nachrichten- und Eingabefelder
  • Töne abspielen, pausieren, fortsetzen, anhalten, suchen, die aktuelle Position des Tons und die Länge des Tons ermitteln
  • Mausbewegungen simulieren
  • Fenster und Prozesse manipulieren
  • Automatisieren Sie das Senden von Benutzereingaben und Tastatureingaben an Anwendungen sowie an einzelne Steuerelemente innerhalb einer Anwendung
  • Unicode-Unterstützung ab Version 3.2.4.0
  • 64-Bit-Code-Unterstützung ab Version 3.2.10.0
  • Unterstützt reguläre Ausdrücke
  • Kompatibel mit der Benutzerkontensteuerung
  • Objektorientierter Entwurf durch eine Bibliothek



Verwendung

AutoIt wird häufig verwendet, um Dienstprogramme für Microsoft Windows zu erstellen. Diese Programme können Routineaufgaben automatisieren. Anwendungsbeispiele sind: Systemverwaltung, Überwachung, Wartung und Softwareinstallation. Es wird auch zur Simulation von Benutzerinteraktionen verwendet. Bei dieser Verwendung wird eine Anwendung durch ein AutoIt-Skript, das sich wie ein menschlicher Benutzer verhält, "angetrieben", Dinge zu tun. Ein AutoIT-Skript kann Tastendrücke und Mausklicks ausgeben, Text eingeben und so weiter. Auf diese Weise simuliert es einen menschlichen Benutzer einer Anwendung.

AutoIt wurde in der kostengünstigen Laborautomatisierung eingesetzt. Zu den Anwendungen gehören Instrumentensynchronisation, Alarmüberwachung und Ergebniserfassung. Auch Geräte wie 3D-Drucker können angesteuert werden.



Beispiele

Hallo Welt

Stellen Sie eine Bibliothek von Konstantenwerten zur Verfügung. #include < MsgBoxConstants. au3> ; Zeigt "Hallo, Welt!" in einer Nachrichtenbox an. MsgBox($MB_SYSTEMMODAL, "Titel", "Hallo, Welt!")

Automatisieren des Windows-Rechners

Stellen Sie eine Bibliothek mit konstanten Werten zur Verfügung. #include < MsgBoxConstants. au3> ; Zeigt ein Nachrichtenfeld mit einer Zeitüberschreitung von 6 Sekunden an. MsgBox($MB_OK, "Achtung", "Vermeiden Sie es, während der Automatisierung die Tastatur oder Maus zu berühren", 6) ; Starten Sie den Windows-Rechner. Run("calc.exe") ; Warten, bis der Rechner aktiv wird, mit einer Zeitüberschreitung von 10 Sekunden. WinWaitActive("[CLASS:CalcFrame]", "", 10) ; Wenn der Rechner nach 10 Sekunden nicht erschienen ist, beenden Sie das Skript. If WinExists("[CLASS:CalcFrame]") = 0 Then Exit ; Geben Sie automatisch das aktuelle Jahr in den Rechner ein. Send(@YEAR) ; Lassen Sie uns das Skript etwas verlangsamen, damit wir sehen können, was vor sich geht. Sleep(600) ; Geben Sie automatisch 'Dividieren durch 4' ein und schlafen Sie dann 600 ms. Send("/4") Sleep(600) ; Drücken Sie die Eingabetaste, um das Ergebnis anzuzeigen, und schlafen Sie 600 ms lang. Send("{ENTER}") Sleep(600) ; Kopieren Sie das Ergebnis mit der Windows-Tastaturkombination Strg+C in die Zwischenablage. Send("^c") ; Deklarieren Sie eine Variable und weisen Sie ihr den Inhalt der Zwischenablage zu. Local $fResult = ClipGet() ; Prüfen Sie, ob die Variable einen Dezimalpunkt enthält oder nicht. If StringInStr($fResult, ".") Then ; Zeigen Sie ein Nachrichtenfeld mit einer Zeitüberschreitung von 5 Sekunden an. MsgBox($MB_OK, "Leap Year", @YEAR & " ist kein Schaltjahr.", 5) Else ;      Diese Meldung wird nur angezeigt, wenn das aktuelle Jahr ein Schaltjahr ist. MsgBox($MB_OK, "Leap Year", @YEAR & " ist ein Schaltjahr.", 5) EndIf ; Schließen Sie den Windows-Rechner - räumen Sie danach immer auf. WinClose("[CLASS:CalcFrame]")

Durchschnitt finden

; Find Average by JohnOne, modified by czardas #include < MsgBoxConstants. au3> _Example() ; Führen Sie das Beispiel aus. Func _Beispiel() ; Zeigen Sie ein Eingabefeld an und bitten Sie den Benutzer, einige durch Kommata getrennte Zahlen einzugeben.Lokale $sInput = InputBox("Find Average", "Geben Sie einige Zahlen durch Komma getrennt ein: 1,2,42,100,3") ; Wenn ein Fehler aufgetreten ist, beenden Sie das Skript.   If @error Then Exit ; Füllen Sie ein Array mit den Eingaben des Benutzers. Local $aSplit = StringSplit($sInput, ",") ; Übergeben Sie das Array an die Funktion _Find_Average() und prüfen Sie es dann auf Fehler. Local $fAverage = _Find_Average($aSplit) If @error Then Exit ; Zeigen Sie das Ergebnis in einem Nachrichtenfeld an. MsgBox($MB_OK, "Mittelwert suchen", "Ergebnis: " & $fAverage) EndFunc ;==>_Beispielfunktion($aArray) ; Wenn      die Eingabe nicht vom richtigen Typ ist (ein Array), dann geben Sie einen Fehler zusammen mit den Details zurück.Wenn nicht IsArray($aArray) , dann geben Sie SetError(1, 0, VarGetType($aArray)) zurück.       Detailliertere Prüfungen sind möglich, aber der Kürze halber wird hier nur eine durchgeführt; ; Deklarieren Sie eine Variable, um die Summe der Zahlen zu speichern. Local $iArraySum = 0 ; Schleife durch das Array. For $i = 1 To $aArray[0] ; Erhöhen Sie die Summe um die Zahl in jedem Array-Element. $iArraySum += Zahl($aArray[$i]) Next ; Gibt den Durchschnitt auf 2 Dezimalstellen gerundet zurück. Rundung zurückgeben($iArraySum / $aArray[0], 2) EndFunc    ;==>_Durchschnitt_finden



Geschichte

  • Januar 1999 - Erste AutoIt Version (1.0)
  • August 1999 - AutoIt v2 und AutoItX
  • September 1999 - Erste AutoIt Version mit Compiler
  • Dezember 2002 - AutoIt v3 (öffentliche Beta-Version)
  • Februar 2004 - AutoIt v3 (Stabil)
  • September 2006 - Auto3Lib gestartet
  • November 2007 - AutoIt v3.2.10.0 veröffentlicht, Auto3Lib in AutoIt v3 integriert
  • Mai 2008 - AutoIt v3.2.12.0 veröffentlicht, mit zusätzlicher GUI-Funktionalität
  • Dezember 2008 - AutoIt (und AutoItX) v3.3.0.0 freigegeben
  • Dezember 2009 - AutoIt v3.3.2.0 veröffentlicht
  • Januar 2010 - AutoIt v3.3.4.0 veröffentlicht
  • März 2010 - AutoIt v3.3.6.0 veröffentlicht
  • April 2010 - AutoIt v3.3.6.1 veröffentlicht
  • Dezember 2011 - AutoIt v3.3.8.0 veröffentlicht
  • Januar 2012 - AutoIt v3.3.8.1 veröffentlicht
  • Dezember 2013 - AutoIt v3.3.10.0 veröffentlicht
  • Juni 2014 - AutoIt v3.3.12.0 veröffentlicht
  • Juli 2015 - AutoIt v3.3.14.0 und v3.3.14.1 veröffentlicht
  • September 2015 - AutoIt v3.3.14.2 veröffentlicht
  • Februar 2018 - AutoIt v3.3.14.3 veröffentlicht



Lizenz

Die Entwickler von AutoIt haben den Quellcode ursprünglich unter der GNU General Public License (GPL) veröffentlicht.

Im Jahr 2006 wurde die Lizenz für Version 3.2.0 und spätere Versionen in eine eigene Closed-Source-Lizenz geändert.

Ein Teil des Codes aus Version 3.1 wurde vom AutoHotkey-Projekt zur Erstellung eines Forks verwendet. Dies war unter den Bedingungen der GPL-Lizenz erlaubt. Die AutoHotkey-Gemeinschaft arbeitet weiter an der Entwicklung und Freigabe des Codes unter der GPL.



Fragen und Antworten

F: Was ist AutoIt?


A: AutoIt ist eine Freeware-Programmiersprache für Microsoft Windows.

F: Wie wurde AutoIt in den Versionen 1 und 2 verwendet?


A: In den Versionen 1 und 2 wurde es zur Erstellung von Automatisierungsskripten für Microsoft Windows-Programme verwendet, die auch als Makros bekannt sind.

F: Was hat sich in Version 3 von AutoIt geändert?


A: Die Skriptsprache wurde in Version 3 erweitert, um mehr Funktionen zu ermöglichen, und die Syntax wurde so geändert, dass sie der Programmiersprache BASIC ähnelt.

F: Welche Art von Daten kann ein AutoIt-Skript enthalten?


A: Ein AutoIt-Skript kann verschiedene Datentypen wie z.B. Arrays enthalten.

F: Kann ein AutoIt-Skript auf Computern ausgeführt werden, auf denen der Interpreter nicht installiert ist?


A: Ja, ein AutoIt-Skript kann in eine eigenständige ausführbare Datei konvertiert werden, die auf Computern ausgeführt werden kann, auf denen der Interpreter nicht installiert ist.

F: Gibt es zusätzliche Funktionen für die Sprache?


A: Ja, es gibt eine Vielzahl von Funktionsbibliotheken, die als UDFs oder "User Defined Functions" bekannt sind. Einige sind standardmäßig enthalten, andere sind auf der Website erhältlich und erweitern die Sprache um zusätzliche Funktionen.

F: Gibt es einen speziellen Editor für die Entwicklung mit AutoIt?


A: Ja, es gibt einen speziellen Editor, der auf dem kostenlosen SciTE-Editor basiert und sowohl einen Compiler als auch Hilfetexte enthält, so dass Entwicklern eine Standardumgebung für die Entwicklung zur Verfügung steht.


Suche in der Enzyklopädie
AlegsaOnline.com - 2020 / 2025 - License CC3