Einfach Skripte nutzen

AutoIT - mit kostenlosem Tool Windows-Abläufe automatisieren

Automatisierung: AutoIt ruft Notepad

Eine ganz besondere Stärke von AutoIt liegt in den Fähigkeiten der Skript-Sprache, Windows-Programme zu automatisieren. Ein sehr einfaches Beispiel hierfür ist der Aufruf von Notepad und die Übergabe von Text an dieses Windows-Programm:

Run("notepad.exe")

WinWaitActive("Unbenannt - Editor")

Send("Diesen Text sendet AutoIt an Notepad.")

Der Befehl "WinWaitActive" ist in diesem Zusammenhang von besonderer Bedeutung, da das Skript auf diesem Weg darauf wartet, dass Windows das entsprechende Programm auch wirklich startete. Hier unterscheiden sich jedoch die verschiedenen Windows-Sprachversionen. Auf einem deutschsprachigen System heißt das Fenster "Unbenannt - Editor", auf einem englischsprachigen Windows würde das Fenster "Untitled - Notepad" heißen. Um dieses Problem zu umgehen wäre die einfachste Variante das Einsetzen eines Wartebefehls.

Run("notepad.exe")

sleep(1000)

Send("Diesen Text sendet AutoIt an Notepad.")

Der Befehl "Sleep" lässt das Skript eine benannte Anzahl von Millisekunden warten. Allerdings kann sich in diesem Fall das Benutzerverhalten zu Problem entwickeln: Klickt der Anwender im Verlauf der einen Sekunde irgendwo hin, so verlagert sich der Fokus an eine andere Stelle und das Senden des Texts geschieht eher unkontrolliert. Um auch dies zu verhindern existiert in AutoIt der Befehl "BlockInput". Er sorgt dann dafür, dass Windows Tastatureingaben und Mausbewegungen ignoriert. Dieser Befehl setzt allerdings voraus, dass das Skript mit Administrator-Rechten ausgeführt wird:

#RequireAdmin

BlockInput(1)

Run("notepad.exe")

sleep(1000)

Send("Diesen Text sendet AutoIt an Notepad.")

BlockInput(0)

Mehr Automatisierung: AutoIt ruft den Browser

Eine weitere Variante, die AutoIt zum Aufruf von Windows-Programmen anbietet, ist der Einsatz der COM-Schnittstelle. Da beispielsweise die Browser Google Chrome und Firefox nicht in der gleichen Art und Weise wie der Internet Explorer über die API zu erreichen sind, beschränkt sich das folgende Beispiel ausschließlich auf den Microsoft IE:

$ObjIE=ObjCreate("InternetExplorer.Application")

With $ObjIE

.Visible = True

.Navigate("http://www.google.de")

Do

Sleep(50)

Until .ReadyState = 4

EndWith

sleep(1000)

send("wie hoch ist der Mount Everest {ENTER}")

In diesem Skript fordert AutoIt Windows zur Erzeugung eines COM-Objekts auf. Der Befehl "with" erspart es dem Nutzer, wie in vielen anderen BASIC-artigen Dialekten auch, dass die folgenden Zeilen in der Form "$ObjIE.visible" ausgeschrieben werden müssen. Das Internet Explorer Objekt wird sichtbar gemacht und zur Navigation auf die Google-Webseite bewegt. Die Do-Until-Schleife sorgt dann dafür, dass der Skript-Job wartet, bis der Internet Explorer den Aufruf der Seite abgeschlossen hat. Anschließend wartet das Skript noch eine Sekunde und übergibt die Frage nach der Höhe des Bergs direkt an Google.