Tutorial - Notepad

Dieses Tutorial erklärt, wie man den Start von Notepad automatisieren kann, wie man automatisch Text eingeben (lassen) und Notepad dann wieder schließen kann. Es wird angenommen, dass du bereits die Vorgehensweise bei der Erstellung und Ausführung von AutoIt-Skripten kennst, die im Tutorial HalloWelt aufgezeigt wurde.

Zuerst legst du ein leeres Sktript namens npad.au3 an und bearbeitest die Datei dann mit Notepad oder SciTE - je nachdem, wen du bevorzugst.

Was wir als erstes benötigen ist der Dateiname von Notepad. Dieser ist notepad.exe - das erfährst du, indem du die Eigenschaften der Notepad-Verknüpfung im Startmenü aufrufst. Um Notepad aufzurufen benutzen wir in AutoIt die Run-Funktion. Diese Funktion ruft das angegebene Programm einfach auf und fährt dann fort.

Schreibe als erste Zeile im Skript folgendes:

@@SyntaxHighlighting@@ Run("notepad.exe") @@End@@

 

Starte das Skript - wenn alles glatt läuft, sollte sich eine neue Instanz von Notepad öffnen.

Wenn man Aufgaben automatisiert, kann AutoIt das Fenster, das gemeint ist, über dessen Fenstertitel identifizieren. Bei Notepad ist der Fenstertitel offensichtlich Untitled - Notepad (Deutsch: Unbenannt - Editor) AutoIt unterscheidet Groß- und Kleinschreibung, so dass du darauf achten musst, den Titel exakt richtig zu übernehmen. Der beste Weg dafür ist das "AutoIt Window v3 Information Tool". Starte es über Start \ (Alle) Programme \ AutoIt v3 \ AutoIt Window Info.

Klicke in das Notepadfenster während das Tool geöffnet ist, um es zu aktivieren - das Tool wird dir nun Informationen über dieses (aktive) Fenster zusammenstellen. Was uns davon jetzt interessiert ist der Fentertitel ("window title").

Markiere den Titel im Tool und drücke STRG + C, um ihn in die Zwischenablage zu kopieren - dann können wir ihn nachher einfach in unser Skript einfügen, ohne Angst haben zu müssen, ihn falsch zu schreiben.

Nachdem wir eine Instanz von Notepad gestartet haben, müssen wir warten, bis das Programmfenster erscheint und aktiviert wird, bevor wir Tastendrücke and das Fenster schicken können. Das können wir mit Hilfe der WinWaitActive-Funktion tun. Die meisten Funktionen, die mit Fenstern arbeiten benötigen diesen Fenstertitel als Parameter.

Schreibe also folgendes als zweite Zeile in dein Skript (benutze STRG + V oder Bearbeiten \ Einfügen, um den Fenstertitel aus der Zwischenablage einzufügen):

@@SyntaxHighlighting@@ WinWaitActive("Unbenannt - Editor") @@End@@

 

Da wir nun sicher sein können, dass das Notepadfenster aktiv ist, können wir ein bisschen Text an das Fenster schicken. Das bewerkstelligen wir mit der Send-Funktion.

Füge diese Zeile am Ende deines Skriptes hinzu.

@@SyntaxHighlighting@@ Send("Das ist ein Beispieltext.") @@End@@

 

Das gesamte Skript wird nun in etwa so aussehen:

@@SyntaxHighlighting@@ Run("notepad.exe") WinWaitActive("Unbenannt - Editor") Send("Das ist ein Beispieltext.") @@End@@

 

Schließe die Instanz von Notepad, die wir geöffnet hatten und starte das Skript.

Du solltest sehen, dass Notepad startet und wie von Zauberhand unser Text darin erscheint.


Natürlich wollen wir Notepad am Ende auch schließen. Dazu verwenden wir die WinClose-Funktion.

@@SyntaxHighlighting@@ WinClose("Unbenannt - Editor") @@End@@

 

Wenn Notepad geschlossen wird, fragt es, ob die Änderungen gespeichert werden sollen. benutze wieder das Window Information Tool, um Informationen über den Dialog zu bekommen, der zu diesem Zweck geöffnet wurde, damit wir darauf automatisch antworten können :-)

 

Also fügen wir eine Zeile hinzu, die wartet, bis dieser Dialog aktiv wird (wir benutzen den Fenstertext, um die Funktion präziser zu machen und Verwechslungen mit dem anderen Notepadfenster auszuschließen):

@@SyntaxHighlighting@@ WinWaitActive("Editor", "Speichern unter") @@End@@

 

Als nächstes wollen wir automatisch ALT-N drücken, um die Schaltfläche Nein auszuwählen. Unterstrichene Buchstaben bedeuten normalerweise, dass du stattdessen den Shortcut ALT + [unterstrichener Buchstabe] benutzen kannst. Um mittels der Funktion Send eine Kombination mit der ALT-Taste zu senden, verwenden wir ! .

@@SyntaxHighlighting@@ Send("!n") @@End@@

 

Damit wir unser Skript auch beobachten können, fügen wir nach einigen Skriptzeilen eine kurze Pause ein, dazu benutzen wir die Funktion Sleep. Die Zahl in Klammern ist die Zeit in Millisekunden, die wir warten wollen:

@@SyntaxHighlighting@@ Run("notepad.exe") WinWaitActive("Unbenannt - Editor") Send("This is some text.") WinClose("Unbenannt - Editor") WinWaitActive("Editor", "Speichern unter") ;WinWaitActive("Editor", "Wollen Sie speichern") ; Falls es unter Windows XP läuft.
Send("!n") @@End@@

 

Starte das Skript und du wirst sehen, dass Notepad gestartet wird, dass dein Text geschrieben wird und dass Notepad ohne Speichern wieder geschlossen wird! Du solltest mit diesen Programmiertechniken auch viele andere Programm automatisieren können.