Skip to main content

Tool der Woche KW 30 – AutoHotkey

In meinem letzten Beitrag habe ich die Automatisierung von wiederkehrenden Tätigkeiten und die daraus resultierenden Vorteile thematisiert. Deswegen habe ich mir gedacht diese Woche das Tool AutoHotkey als „Tool der Woche“ vorzustellen. Zum einen passt es perfekt zum Thema Automatisierung und zum anderen ist es ein, wenn nicht das!, mächtigste Tool welches ich zurzeit nutze. Was ist AutoHotkey? AutoHotkey ist im Grunde eine Skript-Sprache für Windows. Die Sprache ermöglicht es euch z.B. Macros zur Automatisierung zu erstellen, Tasten mit neuen Funktionen zu belegen, Shortcuts für bestimmte Aktionen zu definieren und vieles mehr. Meiner Meinung nach ist es nicht übertrieben und reißerisch zu sagen, dass mit dieser Sprache > 90% aller Aufgaben unter Windows erledigt werden können. Gerade wenn es um das Thema Automatisierung und deren Umsetzung geht, dann führt aus meiner Sicht einfach kein Weg an der Sprache vorbei.

Das klingt zu mächtig um wahr zu sein…

Das stimmt. Aber sei froh, es ist wahr :). Doch wie genau ermöglicht mir die Sprache so einen flexiblen Funktionsumfang? Meiner Meinung nach „interagiert“ die Sprache einfach perfekt mit Windows. Im Grunde genommen ist die Idee so genial wie simpel. Durch Interaktion in Form von simulierten Tastendrücken, Kopieren von Text, Einfügen von Text, Starten von Programmen, Verschieben von Fenstern und unzähligen weiteren Möglichkeiten kann der Benutzer jede Abfolge von Aktionen automatisieren. Andere Sprachen geben z.B. technisch nicht die Möglichkeit mit anderen Programmen zu interagieren ohne, dass diese eine riesige API bereitstellen. Und selbst dann fehlt so oft die eine Funktion, der eine Zugriff auf ein Objekt, den man gerade braucht. Der Vorteil von AutoHotkey ist, dass ich hier nicht auf die Bereitstellung einer API oder einer anderen Methode zur Interaktion angewiesen bin. Durch das Nutzen von simulierten Tastendrücken und auch der Möglichkeit diverse Parameter über das Betriebssystem wie z.B. den Titel eines Fensters zu ermitteln, kann jede Automatisierung über die Oberfläche erfolgen. Und genau das ist das Erfolgsgeheimnis. Denn schließlich kann der Benutzer seine Aufgabe über die Oberfläche des Programmes erledigen. Also nimmt AutoHotkey ganz einfach die Rolle des Benutzer ein und erledigt die Aufgabe über die Oberfläche der Software. Nur eben automatisiert.

Einstieg in die Sprache

Nun könnte der eine oder andere denken, dass die Sprache ziemlich kompliziert und komplex sein muss. Dem ist aber nicht so. Jeder der Software entwickeln und schreiben kann, der findet sich auch in dieser Sprache zurecht, da sie relativ einfach aufgebaut ist. Zudem muss ich an dieser Stelle auch einmal die Dokumentation loben! Jedem sind wahrscheinlich Tools, Sprachen und Programme bekannt, die man nicht so richtig versteht und es gibt einfach keine vernünftige Dokumentation oder Hilfe. Das ist hier anders. Neben der Dokumentation gibt es zudem eine sehr, sehr aktive Community. In diversen Foren tauschen sich die Benutzer über Probleme aus, bieten Lösungen an oder stellen einfach ihre Projekte vor. Und teilweise nehmen diese wirklich unglaubliche Ausmaße und Dimensionen an! Faszinierend anzuschauen.

Neben der guten Dokumentation helfen zudem diverse vorgefertigte Funktionsbausteine. Das heißt es gibt z.B. integrierte Funktionen um eine Oberfläche zu bauen. So steht in wenigen Minuten eine fertige Oberfläche mit der interagiert werden kann. Diese wird sicherlich keine Schönheitspreise gewinnen, aber das ist ja auch nicht das Ziel dahinter. Wie sagt man so schön: Man muss kein Raketenforscher sein, um mit der Sprache arbeiten zu können.

Beispiele aus der Praxis

Nach den ganzen theoretischen Ausführungen und potentiellen Möglichkeiten möchte ich an dieser Stelle ein paar Beispiele vorstellen für die ich AutoHotkey bereits verwendet habe.

Einfügen von Todo-Kommentaren

Wenn Veränderungen an bestimmten Sourcecode-Stellen vorgenommen werden kommt es immer wieder vor, dass Verbesserungspotential an anderen Stellen deutlich wird. Bestenfalls werden diese Veränderungen direkt vorgenommen, aber nicht immer ist dieses einfach so oder im gegebenen zeitlichen Rahmen möglich. Um das Verbesserungspotential der Sourcecode-Stelle zu kennzeichnen wurde im Projekt unter anderem ein Todo-Kommentar in einem festgelegten Format eingefügt:

ToDo: Backlog-Item: %ITEM% Date: %CurrentDateTime% Sign: 123 Comment:

Leider konnte ich mir nie die Nummern der Items merken und musste diese immer manuell nachschauen… Aus diesem Grund habe ich mit AutoHotkey ein Skript erstellt. Dieses hat mir alle Items in einer Liste angezeigt, sodass ich ganz einfach mein Item auswählen konnte. Der Kommentar wurde im Skript erstellt, um die Informationen der Item-Nummer und des Datums ergänzt und anschließend in die aktuelle Zeile eingefügt. So hatte ich ein Todo-Kommentar-Snippet, welches sich dynamisch mit Informationen füttern ließ und mir dadurch eine Menge Zeit und Nerven gespart hat.

Öffnen von Dokumenten aus dem Browser-Fenster

Wer schon einmal mit dem TFS (Team Foundation Server) von Microsoft gearbeitet hat weiß, dass sich die Fenster zum Erfassen von Anforderungen spezifisch erweitern lassen. In einigen Anforderungen wurden somit Links zu Dokumenten hinterlegt, die sich lokal im Netz befanden und weitere Informationen enthielten. Wollte man nun das Dokument öffnen, dann war es notwendig den Link zu kopieren und entweder in ein Explorer- oder das Ausführen-Fenster einzufügen, da auf die Dokumente aus dem TFS (Browser-Fenster) heraus nicht zugegriffen werden konnte. Zu diesem Zweck wurde ein Skript erstellt, welches das Dokument durch das Betätigen einer Tastenkombination geöffnet hat. Dafür wurde geprüft, ob sich der Cursor in dem spezifischen Feld befand, dann der Link in die Zwischenablage kopiert und das Dokument geöffnet. Alles automatisiert per AutoHotkey. So wurde aus drei manuellen Schritten das Drücken einer Tastenkombination.

 

Das waren zwei Beispiele zu relativ simplen Anforderungen. An dieser Stelle könnte ich noch unzählige weitere Beispiele, Verwendungen, Möglichkeiten usw. aufzählen, aber ich denke die bisherigen Beispiele und Ausführungen haben einen guten Eindruck vermitteln können. Außerdem würde das bei weitem den Rahmen dieses Beitrages sprengen. Aus dem Grund habe ich in diesem Beitrag auch auf das Einfügen von Screenshots verzichtet, weil es einfach so viel zu zeigen gibt, dass das an dieser Stelle gar nicht möglich ist.

Ihr solltet AutoHotkey also auf jeden Fall einmal eine Chance geben, wenn es in Richtung Automatisierung oder Arbeitserleichterung geht. Den Aufwand sich mit der Sprache zu beschäftigen ist es auf jeden Fall wert. Das kann ich aus eigener Erfahrung sagen.

Mit diesem Link kommt ihr direkt zur Webseite und viel Spaß beim Ausprobieren!

Schreibe einen Kommentar

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