AutoHotkey-Skripte zum Schreiben Technischer Dokumentation

Das Open-Source-Automatisierungstool AutoHotkey kann beim Erstellen Technischer Dokumentation eine enorme Arbeitserleichterung sein (und nicht nur dabei). Auf dieser Seite finden Sie einige kleine Skripte, die ich selbst bei meiner Arbeit regelmäßig nutze und nie mehr missen möchte. Anders als z. B. Makros in Word funktionieren AutoHotkey-Skripte in jedem Windows-Programm.

Alle Skripte können Sie einfach kopieren, bei Bedarf anpassen und selbst kostenlos nutzen.

Das können die hier vorgestellten Skripte

Wörter oder ganze Sätze und Absätze per Tastenkürzel eingeben

Sonderzeichen per Tastenkürzel oder Zeichenkombination eingeben

Tippfehler automatisch korrigieren oder bestimmte Wörter automatisch bei der Eingabe durch andere Wörter ersetzen

die oft versehentlich aktivierte FesTSTELLTASE abschalten

komfortabel überall einen in der Zwischenablage enthaltenen Text ohne Formatierung einfügen

markierte Wörter per Tastendruck im Web suchen – zum Beispiel auf Google, in einer anderen Suchmaschine, in einem Online-Wörterbuch oder …)

Um die Skripte zu nutzen, brauchen Sie keine Programmierkenntnisse. Einfach die gezeigten Code-Schnipsel kopieren und ab sofort viel Zeit sparen. Vielleicht kommen Sie aber auch auf den Geschmack und finden für sich selbst noch weitere Anwendungsmöglichkeiten. Die Möglichkeiten sind grenzenlos. Im Extremfall können Sie mit AutoHotkey ganze Prozesse automatisieren und in Programmen Dinge nachrüsten, die „eigentlich“ mit dem jeweiligen Programm gar nicht gehen.

 

Wichtig: Wie jedes Computerprogramm führen Skripte Aktionen auf Ihrem Computer aus. In manchen Fällen lassen sich diese Aktionen nicht mehr rückgängig machen. Speichern Sie vor dem Verwenden neuer Skripte Ihre Daten. Testen Sie neue Skripte gründlich. Alle Angaben ohne Gewähr. Verwendung der vorgestellten Skripte auf eigene Gefahr!

Vorbereitung: AutoHotkey installieren

Damit die Skripte auf Ihrem Computer ausgeführt werden, benötigen Sie AutoHotkey als sogenannten Interpreter oder Compiler. Die Installationsdatei erhalten Sie auf der Website von AutoHotkey unter https://www.autohotkey.com.

 

Wichtig: Die hier von mir vorgestellten Skripte benötigen Version 2.x von AutoHotkey. Falls Sie parallel dazu noch alte für Version 1.x geschriebene Skripte nutzen wollen, bietet Ihnen AutoHotkey beim Ausführen dieser Skripte eine Option, diese Skripte noch mit der Version 1 des Interpreters auszuführen.

→ Nach der Installation erscheint das Startfenster AutoHotkey Dash. Hier können Sie die Dokumentation zu AutoHotkey öffnen, Einstellungen ändern und neue Skripte anlegen.

Grundwissen: Skript erstellen und ausführen

Um die auf dieser Seite von mir vorgestellten Skripte nutzen und bei Bedarf geringfügig abwandeln zu können, müssen Sie nicht viel über AutoHotkey wissen.

Skript erstellen

1Sofern das Fenster AutoHotkey Dash nicht mehr geöffnet ist: Starten Sie AutoHotkey über das Windows-Startmenü.

→ Es erscheint das Fenster AutoHotkey Dash.

2Klicken Sie im Fenster AutoHotkey Dash auf New script, und erstellen Sie eine neue Skript-Datei.

→ AutoHotkey erstellt die Datei und öffnet automatisch den Ordner, in dem die Datei angelegt wurde.

3Klicken Sie mit der rechten Maustaste auf die Datei (*.ahk), und wählen Sie im Kontextmenü Edit script.

Anmerkung: Zusammen mit AutoHotkey wurde in dessen Installationsverzeichnis ein speziell für AutoHotkey-Skripte angepasster Editor installiert: das Programm SciTE4AutoHotkey. Dieser Editor verfügt über ein Syntax-Highlighting speziell für AutoHotkey sowie diverse andere praktische Funktionen speziell für AutoHotkey. Sie können jedoch auch jeden anderen Texteditor verwenden, der in der Lage ist, UTF-8-codierte Dateien zu schreiben, wie z. B. Notepad++ (ebenfalls Open Source).

 

Wichtig: Stand 01/2023 funktioniert der Editor SciTE4AutoHotkey mit der neuen Version 2.x von AutoHotkey noch nicht in allen Fällen. Sollten Sie eine Fehlermeldung erhalten, können Sie z. B. Notepad++ zum Bearbeiten Ihrer Skripte verwenden.

4Stellen Sie im Editor sicher, dass die Datei die Codierung UTF-8 mit BOM verwendet. Andernfalls funktionieren Sonderzeichen in Skripten nicht richtig. In SciTE4AutoHotkey wählen Sie hierzu File > Encoding > UTF-8 with BOM. In Notepad++ finden Sie dieselbe Einstellung unter Encoding > Encode in UTF-8-BOM.

Skript starten

Haben Sie im Editor ein Skript erstellt und gespeichert, können Sie das Skript starten:

> Doppelklicken Sie auf die Skript-Datei. (Alternativ klicken Sie mit der rechten Maustaste auf die Skript-Datei, und wählen Sie dann im Kontextmenü Run script.)

→ Im Infobereich der Windows Taskleiste erscheint ein AutoHotkey-Symbol.

Bei den meisten Skripten passiert nun weiter erst einmal augenscheinlich nichts. Das Skript wartet im Hintergrund auf ein im Skript definiertes Ereignis, wie z. B. den Druck einer bestimmten Tastenkombination oder die Eingabe einer bestimmten Zeichenkette. Erst dann wird eine mit dem jeweiligen Ereignis verknüpfte Funktion aktiv.

Anmerkung: Optional können Sie ein Skript auch in eine ausführbare Datei umwandeln („Compilieren“). Danach können Sie oder andere Personen dieses Skript dann auch auf Computern nutzen, auf denen AutoHotkey nicht installiert ist. Siehe hierzu entsprechende Funktion im Fenster AutoHotkey Dash sowie die Dokumentation zu AutoHotkey.

Skript stoppen

Sie können ein aktives Skript jederzeit pausieren oder ganz beenden:

1Klicken Sie in der Windows Taskleiste mit der rechten Maustaste auf das Symbol des laufenden Skripts.

2Wählen Sie im Kontextmenü:

Suspend Hotkeys, um lediglich die im Skript definierten Auslöser zu deaktivieren, andere eventuell im Skript vorhandene Funktionen jedoch aktiv zu lassen

Pause Script, um das Skript vollständig anzuhalten

Exit, um das Skript ganz zu beenden

Tipp: Im Kontextmenü können Sie mit dem Befehl Reload Script ein laufendes Skript außerdem jederzeit neu laden. Dies ist nötig, wenn Sie an der Skript-Datei eines laufenden Skripts Änderungen vorgenommen haben und AutoHotkey diese ab sofort verwenden soll.

Wörter oder Sätze per Tastenkürzel eingeben

Die einfachste und gleichzeitig wichtigste Funktion in AutoHotkey ist es, etwas per Tastenkürzel auszulösen. Damit können Sie AutoHotkey z. B. nutzen, um per Tastenkürzel bestimmte häufig benötigte Wörter oder Phrasen einzugeben.

Beispiel: Den Namen des in Ihrer Dokumentation beschriebenen Produkts müssen Sie typischerweise sehr häufig tippen. Dafür können Sie folgendes kleines Skript erstellen:

Anmerkung: Alle in einer Codezeile hinter einem Strichpunkt stehende Zeichen sind ein Kommentar und werden von AutoHotkey beim Ausführen des Skripts ignoriert.


;--------------------------------------------------------------------
; Autotext
;--------------------------------------------------------------------
#p::SendInput "MyProduct"

Sobald Sie das Skript gestartet haben, brauchen Sie ab sofort nur noch die Windows-Taste zusammen mit dem Buchstaben p zu drücken, und schon gibt AutoHotkey für Sie wie von Geisterhand Ihren Produktnamen ein – im Beispiel den Text MyProduct.

Hotkey anpassen

Die Syntax #p:: definiert den Hotkey. Die Tastenkombination können Sie bei Bedarf leicht ändern. Die nachfolgenden Beispiele zeigen das Prinzip.

Anmerkung: [Win] steht dabei für die Windows-Taste, die sich meist wischen der Strg-Taste und der Alt-Taste links unten auf der Tastatur befindet.

Code

Wird ausgelöst bei Tastenkombination

#p::SendInput "MyProduct"

[Win]+[p]

^p::SendInput "MyProduct"

[Strg]+[p]

!p::SendInput "MyProduct"

[Alt]+[p]

^#p::SendInput "MyProduct"

[Strg]+[Win]+[p]

^+p::SendInput "MyProduct"

[Strg]+[Umschalttaste]+[p]

!+p::SendInput "MyProduct"

[Alt]+[Umschalttaste]+[p]

^F3::SendInput "MyProduct"

[Strg]+[F3]

Weitere Codes finden Sie bei Bedarf in der sehr ausführlichen Online-Hilfe zu AutoHotkey (Stichwort „Hotkeys“).

Weitere Hotkeys hinzufügen

Der Skript-Datei können Sie beliebig viele weitere Befehle hinzufügen. Das folgende Beispiel etwa enthält noch ein Tastenkürzel für Ihren Namen:


;--------------------------------------------------------------------
; Autotext
;--------------------------------------------------------------------
#p::SendInput "MyProduct"
#n::SendInput "MyName"

 

Wichtig: Vergessen Sie nach dem Ändern des Skripts nicht, dass Sie ein bereits aktives Skript nach dem Speichern neu laden müssen, damit die Änderungen aktiv werden.

Sonderzeichen eingeben

Genauso wie für Text, können Sie Tastenkürzel auch zum Einfügen von Sonderzeichen nutzen, die Sie nicht auf Ihrer Tastatur finden, aber dennoch häufig benötigen. Alternativ zu Tastenkürzeln können Sie auch bestimmte Zeichenkombinationen als Auslöser verwenden.

Das folgende Skript kombiniert beide Methoden.


;--------------------------------------------------------------------
; Typographically correct special characters
;--------------------------------------------------------------------
#a::Send "’"          ; apostrophe
#n::Send "–"          ; en dash (German: Halbgeviertstrich / Gedankenstrich)
#m::Send "—"          ; em dash (German: Geviertstrich)
#i::Send "−"          ; minus sign
#x::Send "×"          ; multiplication symbol
:?*:...::…            ; ellipsis character
:*:""::“”{left}       ; curly double quotation marks English
:*:''::‘’{left}       ; curly single quotation marks English
:*:d""::„“{left}      ; curly double quotation marks German
:*:d''::‚‘{left}      ; curly single quotation marks German

Mit diesem Skript geben Sie bequem folgende Sonderzeichen ein:

Auslöser

Funktion

[Win]+[a]

typografisch korrekter Apostroph

[Win]+[n]

typografisch korrekter Gedankenstrich (Halbgeviertstrich); Englisch „En Dash“

[Win]+[m]

Geviertstrich; Englisch „Em Dash“

[Win]+[i]

typografisch korrektes Minuszeichen

[Win]+[x]

typografisch korrektes Multiplikationszeichen

drei hintereinander eingegebene Punkte

typografisch korrektes Auslassungszeichen

zwei hintereinander eingegebene gerade Anführungszeichen

zwei typografisch korrekte Anführungszeichen (englischer Stil); die Einfügemarke rückt automatisch um eine Stelle nach links zwischen die beiden Zeichen

zwei hintereinander eingegebene halbe gerade Anführungszeichen

zwei typografisch korrekte halbe Anführungszeichen (englischer Stil); die Einfügemarke rückt automatisch um eine Stelle nach links zwischen die beiden Zeichen

Buchstabe d gefolgt von zwei geraden Anführungszeichen

zwei typografisch korrekte Anführungszeichen (deutscher Stil); die Einfügemarke rückt automatisch um eine Stelle nach links zwischen die beiden Zeichen

Buchstabe d gefolgt von zwei halben geraden Anführungszeichen

zwei typografisch korrekte halbe Anführungszeichen (deutscher Stil); die Einfügemarke rückt automatisch um eine Stelle nach links zwischen die beiden Zeichen

 

Wichtig: Achten Sie darauf, dass die Skript-Datei mit dem Encoding „UTF-8 with BOM“ gespeichert wird. Andernfalls erhalten Sie die falschen oder keine Sonderzeichen.

Text bei der Eingabe ersetzen

Eine sprechende Buchstabenfolge lässt sich oft leichter merken als ein Tastenkürzel. Zum Beispiel könnten Sie die Zeichenfolge „pe“ verwenden (gefolgt von einem Leerzeichen oder Satzzeichen), um den Text „Professional Edition“ einzugeben. Analog „se“ für „Standard Edition“.

Vielleicht haben Sie auch bestimmte Wörter, die Sie partout immer falsch schreiben. Wenn Sie im Wort „acess“ z. B. oft ein „c“ vergessen, definieren Sie doch einfach ein Skript, das die falsche Schreibweise immer und überall automatisch durch die richtige Schreibweise ersetzt.

Das Skript kann dann so aussehen:


;--------------------------------------------------------------------
; Auto replacements
;--------------------------------------------------------------------
::pe::Professional Edition
::se::Standard Edition
::acess::access

Geben Sie nach dem Aktivieren dieses Scripts „pe“ gefolgt von einem Leerzeichen ein, erscheint automatisch der Text „Professional Edition“. Aus „se“ wird analog automatisch „Standard Edition.“ Schreiben Sie das Wort „acess“ falsch, wird daraus automatisch die richtige Schreibweise „access“.

 

Wichtig: Verwenden Sie bei automatischen Ersetzungen immer nur solche Zeichenkombination als Auslöser, die als einzelnes Wort oder als Abkürzung keinen Sinn ergeben. Sonst ersetzt AutoHotkey auch diese Fälle.

Feststelltaste abschalten

Kommen Sie manchmal versehentlich auf die Feststelltaste und schreiben dANN UNBEMERKT EIN GANZES STÜCK GROß WEITER? Zwei Zeilen in AutoHotkey, und damit ist für immer Schluss!


;--------------------------------------------------------------------
; Caps lock key deactivation
;--------------------------------------------------------------------
SetCapsLockState "off"      ;sets the caps lock state to OFF
Capslock::Shift             ;maps the Caps Lock key to the Shift key

Die Feststelltaste hat jetzt dieselbe Funktion wie die Umschalttaste :-)

Text als unformatierten Text einfügen

Nicht alle Programme verfügen über eine ausreichend komfortable Funktion, in der Zwischenablage enthaltenen Text als reinen Text ohne Formatierung in ein Dokument einzufügen. Auch dazu bietet sich AutoHotkey an.

Mit dem folgenden Skript geht das einheitlich in allen Programmen mit der Tastenkombination [Strg]+[Win]+[t].


;--------------------------------------------------------------------
; Paste as text
;--------------------------------------------------------------------
^#t:: {
 A_Clipboard := A_Clipboard
 Send "^v"
}

Fenster immer im Vordergrund halten

Beim Beschreiben eines Fensters kann es praktisch sein, wenn dieses Fenster nicht immer wieder hinter anderen Fenstern verschwindet, sondern sichtbar bleibt. Oder Sie möchten vielleicht eine Datei mit Input, ein Wörterbuch oder irgendein kleines Dienstprogramm parallel zum Schreiben nutzen. Auch dabei möchten Sie z. B. aus Platzgründen das Fenster vielleicht nicht neben Ihren Editor schieben oder immer wieder manuell in den Vordergrund zurückholen.

Mit dem folgenden Skript verändern Sie ein beliebiges Fenster so, dass es immer das oberste Fenster und damit immer sichtbar bleibt.


;--------------------------------------------------------------------
; Stay on top
;--------------------------------------------------------------------
^#a:: {
 Title:=WinGetTitle("A")
 ExStyle:=WinGetExStyle("A")
 IF (ExStyle & 0x8)
  {WinSetAlwaysOnTop false, "A"
   MsgBox "No longer set to stay on top: " Title, "Stay on Top Script", "4096"
  }
 ELSE
  {WinSetAlwaysOnTop true, "A"
   MsgBox "Now set to stay on top: " Title, "Stay on Top Script", "4096"
  }
}

Um einem beliebigen geöffneten Fenster die Eigenschaft „Stay on Top“ zu geben, aktivieren Sie das Fenster, und drücken Sie dann die Tastenkombination [Strg]+[Win]+[a].

Um das Fenster später wieder in den Normalzustand zurückversetzen, wiederholen Sie den Vorgang.

Markierte Wörter im Web suchen

Praktisch ist AutoHotkey auch zur Recherche. Mit den folgenden Skripten können Sie z. B. aus jedem Programm heraus markierten Text in eine Suche übernehmen – z. B. nach Google, Bing oder Wikipedia.

1Text markieren.

2Tastenkombination [Strg]+[Win]+[g] drücken.

→ Es öffnet sich Ihr Webbrowser mit den Suchergebnissen in Google.

Für eine Suche auf Bing verwenden Sie analog [Strg]+[Win]+[g]. Für eine Suche auf Wikipedia [Strg]+[Win]+[w].

Die Skripte hierzu sehen wie folgt aus:


;--------------------------------------------------------------------
; Web look-up
;--------------------------------------------------------------------
^#g:: {
 ClipSaved := ClipboardAll()
 SendInput "^c"
 sleep 500
 searchterm := A_Clipboard
 Run "http://www.google.com/search?&q=" searchterm
 A_Clipboard := ClipSaved
 ClipSaved := ""
}
^#b:: {
 ClipSaved := ClipboardAll()
 SendInput "^c"
 sleep 500
 searchterm := A_Clipboard
 Run "http://www.bing.com/search?&q=" searchterm
 A_Clipboard := ClipSaved
 ClipSaved := ""
}
^#w:: {
 ClipSaved := ClipboardAll()
 SendInput "^c"
 sleep 500
 searchterm := A_Clipboard
 Run "https://wikipedia.org/wiki/" searchterm
 A_Clipboard := ClipSaved
 ClipSaved := ""
}

Das Schöne an AutoHotkey ist, dass Sie diese Suchen sehr leicht auch auf sehr spezielle Webseiten anpassen können, für die es keine vergleichbaren fertigen Utilities gibt. Zum Beispiel auf ein spezielles Online-Wörterbuch oder eine besondere Terminologie-Datenbank.

Sie müssen sich lediglich genau ansehen, wo in der Adresszeile der anzusprechenden Website das oder die gesuchten Wörter stehen. Anschließend passen den Aufruf im Skript entsprechend an.

Tipp: In vielen Fällen können Sie die im Browser angezeigte URL deutlich vereinfachen und Parameter darin weglassen. Das erfordert zwar ein wenig Experimentierfreude, ist aber auch ohne Informatikstudium gut machbar.

Alle Skripte in einer Datei

War bei den vorgestellten Skripten mehr als eines dabei, das Sie zukünftig regelmäßig nutzen wollen? Dann brauchen Sie nicht für jede Funktion eine separate Skript-Datei zu erstellen und zu starten. Praktischer ist es, alle benötigen Skripte in eine einzige Datei zu packen.

Tipp: Wenn Sie möchten, dass die in dieser Datei enthaltenen Skripte beim Start von Windows automatisch aktiv werden, erstellen Sie im Ordner Autostart von Windows eine Verknüpfung auf die Skript-Datei.

Angenehmes Zeitsparen :-)


;###################################################################################################
;
; indoition AutoHotkey Script Collection for Writing Technical Documentation
; Version 2023 for AutoHothey 2.x
; --------------------------------------------------------------------------
; (C) 2023 Marc Achtelig, all rights reserved
;
; To run the scripts, use AtoHotkey Version 2.x, available from http://www.autohotkey.com.
;
;
; USE ALL SCRIPTS WITH CAUTION!
; -----------------------------
; Scripts can interfere with other prorams and might trigger unforeseen actions that result in 
; unwanted changes or loss of data. 
; Back up your data before using a script. Verify your data after using a script.
; All scripts in this collection are provided "as is" with no obligations and with no support.
; Use at your own risk.
;
;;##################################################################################################
;--------------------------------------------------------------------
; Autotext
;--------------------------------------------------------------------
#p::SendInput "MyProduct"
;--------------------------------------------------------------------
; Typographically correct special characters
;--------------------------------------------------------------------
#a::Send "’"          ; apostrophe
#n::Send "–"          ; en dash (German: Halbgeviertstrich / Gedankenstrich)
#m::Send "—"          ; em dash (German: Geviertstrich)
#i::Send "−"          ; minus sign
#x::Send "×"          ; multiplication symbol
:?*:...::…            ; ellipsis character
:*:""::“”{left}       ; curly double quotation marks English
:*:''::‘’{left}       ; curly single quotation marks English
:*:d""::„“{left}      ; curly double quotation marks German
:*:d''::‚‘{left}      ; curly single quotation marks German
;--------------------------------------------------------------------
; Auto replacements
;--------------------------------------------------------------------
::pe::Professional Edition
::se::Standard Edition
::acess::access
;--------------------------------------------------------------------
; Caps lock key deactivation
;--------------------------------------------------------------------
SetCapsLockState "off"      ;turns off the Caps Lock state
Capslock::Shift             ;maps the Caps Lock key to the Shift key
;--------------------------------------------------------------------
; Paste as text
;--------------------------------------------------------------------
^#t:: {
 A_Clipboard := A_Clipboard
 Send "^v"
}
;--------------------------------------------------------------------
; Stay on top
;--------------------------------------------------------------------
^#a:: {
 Title:=WinGetTitle("A")
 ExStyle:=WinGetExStyle("A")
 IF (ExStyle & 0x8)
  {WinSetAlwaysOnTop false, "A"
   MsgBox "No longer set to stay on top: " Title, "Stay on Top Script", "4096"
  }
 ELSE
  {WinSetAlwaysOnTop true, "A"
   MsgBox "Now set to stay on top: " Title, "Stay on Top Script", "4096"
  }
}
;--------------------------------------------------------------------
; Web look-up
;--------------------------------------------------------------------
^#g:: {
 ClipSaved := ClipboardAll()
 SendInput "^c"
 sleep 500
 searchterm := A_Clipboard
 Run "http://www.google.com/search?&q=" searchterm
 A_Clipboard := ClipSaved
 ClipSaved := ""
}
^#b:: {
 ClipSaved := ClipboardAll()
 SendInput "^c"
 sleep 500
 searchterm := A_Clipboard
 Run "http://www.bing.com/search?&q=" searchterm
 A_Clipboard := ClipSaved
 ClipSaved := ""
}
^#w:: {
 ClipSaved := ClipboardAll()
 SendInput "^c"
 sleep 500
 searchterm := A_Clipboard
 Run "https://wikipedia.org/wiki/" searchterm
 A_Clipboard := ClipSaved
 ClipSaved := ""
}

Siehe auch meine weiteren Arbeitshilfen zur Technischen Dokumentation.