Automatisierung unter Windows
30.08.2025

Auf dieser Seite dokumentiere ich Wissen zur Automatisierung unter Windows mit AutoHotkey und der Firefox-Erweiterung Violentmonkey.
AutoHotkey
Es gibt verschiedene Software zur Automatisierung unter Windows. AutoIt schien mir zu CPU-intensiv. AutoHotkey Version 2 enthielt mit Stand August 2025 zu schwerwiegende Bugs. Deshalb habe ich mich für AutoHotkey Version 1.1 entschieden. AutoHotkey ist Open Source und kann entweder von der AutoHotkey Website oder bei Github heruntergeladen werden. Nach dem Entpacken der Zip-Datei wird die Datei AutoHotkeyU64.exe benötigt, die in "AutoHotkey.exe" umbenannt werden sollte. Die Datei funktioniert ohne Installation - also wie eine portable App. In eine Datei "AutoHotkey.ahk" können Tastenkombinationen und Befehle zur Automatisierung reingeschrieben werden. Die Datei "AutoHotkey.ahk" sollte sich im selben Verzeichnis befinden wie "AutoHotkey.exe".
Damit AutoHotkey automatisch beim Start von Windows mitgestartet wird, sollte die AutoHotkey.exe in folgendes Verzeichnis bei Windows 10 verlinkt werden:
C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
Es gibt eine Dokumentation der Befehle für AutoHotkey.ahk wie zum Beispiel den Befehl zum Tippen von Text oder Tasten: Send. Bei der Dokumentation ist darauf zu achten, dass Version 1 von AutoHotkey eine andere Syntax hat als Version 2. Hier ist also die richtige Dokumentation zu wählen und wenn ChatBots helfen sollen, dann Version 1 oder 1.1 erwähnen. Ein einfaches Beispiel der AutoHotkey.ahk sieht so aus:
#c::
Send password
Send {Enter}
return
Hier wird der Tastenkombination Windows-Taste und "c" eine Aktion zugeordnet, bei der die Zeichenkette "password" eingegeben und das Drücken der Enter-Taste simuliert wird. Der "return" Ausdruck beendet den Abschnitt.
Die folgende AutoHotkey.ahk gibt ein komplexeres Beispiel zur Benutzung von "Yubico Authenticator" Desktop mit der Tastenkombination "Windows + y". Manche Firmen setzen "YubiKey" ein, um sich bei einem Microsoft-Konto anzumelden. Wenn man dieses Programm täglich benutzen muss, dann erleichtert die Automatisierung mit AutoHotkey die Arbeit. Außerdem enthält die Datei auch einen Maus-Ruckler, damit der Desktop nicht automatisch bei Inaktivität gesperrt wird.
Die Datei WindowSpy.ahk kann dafür benutzt werden, um den Fenstertitel, den Namen der Exe-Datei, die relative Mausposition im Fenster oder eine bestimmte Farbe im Fenster zu finden.
DOORS
DOORS ist ein Werkzeug mit dem Anforderungen zur Softwareentwicklung verwaltet werden können. Manchmal möchte man ein DOORS-Modul automatisiert als HTML-Datei exportieren (z.B. eine Spezifikation).
Der folgende Inhalt sollte in eine Datei doors.bat gespeichert werden.
del /F /Q "Y:\specification_export\*"
"C:\Program Files\IBM\Rational\DOORS\9.6\bin\doors.exe" -d 12345@doors-location -a "\\server\usr$\addins" -p "Directory" -u "your_username" -P "your_password" -defopenmode READ_ONLY -dxl "#include <C://Users//your_user//Documents//tools//open.dxl>"
Der del-Befehl löscht ein Verzeichnis, in das die vorherige Version der Spezifikation exportiert wurde und schafft Platz für den neuen DOORS-Export. Dieses Verzeichnis sollte bei einem vorherigen DOORS-Export eingestellt werden. DOORS kann mit der Option -dxl ein DXL-Skript beim Start ausführen. Dieses DXL-Skript open.dxl sieht in etwa so aus:
View v = view("03 MyView");
// View v = view("01 Compact");
bool test;
test = load(mod, v);
// working:
bool confirm (string s) { print "Confirmed: " s "\n"; return true }
void ack (string s) {print "Acknowledge: " s "\n" }
// void acknowledge (string s) {print "Acknowledge: " s "\n" }
void infobox (string s) {print "Info: " s "\n" }
void info (string s) {print "Info: " s "\n" }
DB theDiag = null
// Now override block and show, to only do realize
void show (DB x) { realize x; theDiag = x }
void block (DB x) { realize x; theDiag = x }
{
#include <standard/export/html.dxl>
// working:
set(formatChoice, 1)
set(linksToggle, false)
set(preserveColumnAutoIndentingToggle, true);
htmlExportCB theDiag
if (!null theDiag) destroy theDiag
// close DOORS
exit_
}
Das DXL-Skript lädt ein DOORS-Modul mit einer bestimmten Ansicht (View) und exportiert das Modul als HTML-Datei mit bestimmten Optionen.
Nach dem manuellen Test der Datei doors.bat kann sie im Task-Scheduler von Windows mit einer Uhrzeit eingetragen werden.
Violentmonkey
Die Firefox-Erweiterung "Violentmonkey" kann dazu benutzt werden, um Aktionen in Webseiten automatisch auszuführen - zum Beispiel Text ausfüllen und einen Knopf drücken. Im Gegensatz zu Greasemonkey kann Violentmonkey besser mit dynamisch generierten Webseiten umgehen.
Single-Sign-On (SSO) Button drücken
Hier ist ein einfaches Beispiel, um einen Login-Knopf für Single-Sign-On (SSO) in einer Webseite automatisch zu drücken: click_login_with_certificate.user.js. Die URL im Userskript bei @include muss für die jeweilige Webseite angepasst werden. Es klingt nicht nach viel einen Knopf in einer Webseite von Hand zu drücken, aber hier ist wieder der Nervigkeitsfaktor bei täglicher Benutzung ausschlaggebend für die Automatisierung.
SAP NetWeaver Business Client (NWBC) Zeitbuchungskorrekturen
Wer täglich die Zeiterfassung in der Webversion von NetWeaver Business Client (NWBC) benutzt, wird sich eine Automatisierung der Webseite wünschen. SAP generiert die Elemente der Webseite dynamisch mit Javascript, weshalb das Userskript etwas komplizierter geworden ist. Das folgende Userskript klickt im Menü "Zeitbuchungskorrekturen" auf den Knopf "Kommen" des aktuellen Tages click_kommen_in_nwbc.user.js. Auch hier ist wieder die URL in der Zeile @include anzupassen.
Das folgende Userskript klickt auf den Menüpunkt "Zeitbuchungskorrekturen" in NWBC zeitbuchungskorrekturen_klicken.user.js. Dieses Skript wird vor dem oberen Userskript ausgeführt.
Das folgende Userskript klickt auf den Login-Button der Webversion von NWBC für einen automatischen Login nwbc_login.user.js.