Anredeformen mit Autohotkey

Mein Einführungsartikel zu Autohotkey, den ich vor rund einem Jahr geschrieben habe, ist hier im Blog der Topartikel. Nicht zuletzt, weil er auch auf der deutschen Autohotkey-Startseite verlinkt ist. Also habe ich beschlossen, immer mal wieder in losen Abständen ein paar Schnipsel zu veröffentlichen, die mir bei der täglichen Arbeit helfen.

Los gehts mit meinen Anredeformen. Also solche Dinge wie „Sehr geehrter Herr Sowieso“ oder „Sehr geehrte Frau Sowieso“ oder auch die allgemeine Anrede. Dazu verwende ich Textersetzungen. Beispielsweise schreibe ich sgdh und es wird „Sehr geehrte Damen und Herren,“ geschrieben, gefolgt von zwei Zeilenumbrüchen. Wenn ich aber die Anrede für einen Mann oder eine Frau benötige, schreibe ich sgf für die weibliche und sgh für die männliche Anrede. Und weil ich jedesmal den Namen der jeweiligen Person brauche, löse ich das Ganze mit einem Eingabeformular.

Als Beispiel mal der Code für die männliche Anrede:

:*:sgh::
InputBox, UserInput, Sehr geehrter Herr...,,, 250, 100,
Send, Sehr geehrter Herr%A_Space%
Send, %UserInput%
Send, ,{Return 2}
return

Ich erkläre die Befehle jetzt einfach mal Zeile für Zeile.

:*:sgh::

Diese Zeile löst die folgende Aktion aus. Der Stern (*) zwischen den ersten beiden Doppelpunkten sorgt dafür, dass die Funktion sofort ausgeführt und kein abschließendes [Enter] benötigt wird.

InputBox, UserInput, Sehr geehrter Herr...,,, 250, 100,

Erzeugt eine Eingabeaufforderung, die so aussieht:

%UserInput% ist die Variable, die mit dem gefüllt wird, was in das Eingabefeld getippt wird. Die beiden Zahlen am Ende bestimmen die Größe des Eingabedialogs. In diesem Fall ist er 250px breit und 100px hoch.

Send, Sehr geehrter Herr%A_Space%

Ab jetzt wird der Text zusammengesetzt. Zunächst wird „Sehr geehrter Herr“, gefolgt von einem Leerzeichen geschrieben. Damit Autohotkey das Leerzeichen als solches erkennt, muss es explizit als %A_Space% hingeschrieben werden

Send, %UserInput%

Jetzt kommt der Name, den ich in das Eingabefeld getippt habe. Der steht ja in der %UserInput%-Variable und wird einfach hingeschrieben.

Send, ,{Return 2}

Und jetzt noch ein Komma, gefolgt von zwei Zeilenumbrüchen

return

Zum Schluss wird der Block ordnungsgemäß beendet.

Natürlich könnte man die drei Zeilen, die den Text zusammensetzen auch in eine Zeile schreiben. Das sähe dann so aus:

Send, Sehr geehrter Herr %UserInput%,{Return 2}

Und weil alles in einer Zeile steht, braucht man auch das explizite Leerzeichen nicht.

Genauso funktioniert das auch mit der Anrede bei Frauen. Der Schnipsel für die allgemeine Anrede ist wesentlich einfacher, nämlich so:

:*:sgdh::Sehr geehrte Damen und Herren,{Enter 2}

Ich hoffe, ich konnte ein wenig Licht ins Dunkel bringen und wünsche viel Spaß beim Ausprobieren und erweitern. :)

[download id=“5″]

Über den Autor

Michael Sonntag

Michael Sonntag schreibt hier über Tipps und Tools, um die tägliche, wiederkehrende Arbeit im Büro oder Homeoffice zu erleichtern. Mehr von Michael gibts u.a. auf PAPIERLOS LESEN.

2 Kommentare

Trackback  •  Kommentarfeed

  1. hotkey sagt:

    Feine Sache!
    In der Datei hat sich übrigens ein kleiner Rechtschreibfehler bzw. copy paste Fehler eingeschlichen. Der Auslöser sgh hat sich auch bei der Variante für die Dame eingenistet. ;-)

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Hoch