Die meisten Linux-Benutzer und vor allem natürlich Systemadministratoren sind es gewohnt, wiederkehrende Aufgaben als Shell-Skripte zu automatisieren. Dies funktioniert deswegen so gut, weil Systemverwaltungskommandos vollständig über Parameter der Kommandozeile zu steuern sind und die Shell den notwendigen Satz an Kontrollstrukturen für den Skriptablauf mitbringt. Leider ist die Situation bei Programmen mit GUI oftmals nicht so komfortabel: nicht jedes stellt ein scripting-API oder eine eigene Makro-Sprache zur Verfügung, manchmal unterstützt das API auch nicht alle Befehle, die über das GUI bereitstehen. In diesen Fällen kann Visual-Scripting das Problem lösen: die GUI-Applikation wird nach wie vor über GUI-Events gesteuert, diese kommen allerdings nicht mehr von der physischen Tastatur oder Maus, sondern werden durch eine anderes Programm generiert. Die zu steuernde GUI-Applikation stellt diesen Unterschied nicht fest und das Steuerungsprogramm bietet eine generische Skriptsprache an bzw. bildet GUI-Aktionen des zusteuernden Programms auf Kommandozeilen-Parameter ab. Diesen Ansatz verfolgt die Qt-basierte Visual-Scripting-Software qvscript. Damit können GUI-Applikationen lokal oder remote via X11/RDP/VNC gesteuert werden. qvscript benutzt Methoden der digitalen Bildverarbeitung und Mustererkennung, um die graphische Ausgabe der Applikation zu analysieren. Es können Muster wie bspw. Icons oder Button- und Menutexte erkannt werden, aber auch eine OCR im ganzen oder in Teilbereichen der graphischen Applikationsausgabe ist möglich. Die JavaScript-basierte Sprache in qvscript erlaubt es damit, Maus- und/oder Tastatur-Ereignisse an die Applikation zu senden. Ein eingebauter Debugger erleichtert die Fehlersuche in umfangreichen Skripten. Zudem können für eine applikationsübergreifende Koppelung DBus-Signale gesendet werden oder über DBus-Methoden kann wiederum die GUI-Applikation gesteuert werden. Damit ist jede Form von GUI-Aktion (auch bspw. Drag-Drop) möglich. Natürlich kann auch das gesamte Desktop analysiert werden, womit dann applikationsübergreifende Skripte machbar werden. Als Anwendungsbeispiele für Visual-Scripting kommen auf der einen Seite oft Browser-basierte Applikationen in Betracht, die gar keine Möglichkeit zur Skriptsteuerung mitbringen. Hier lassen sich durch qvscript z.B. periodische Aufgaben automatisieren. Ein anderes großes Einsatzgebiet ist die Steuerung von legacy-Applikationen: sind diese über RDP erreichbar oder können Sie in einer KVM/qemu virtualisiert werden, so können Sie einerseits skriptbasiert gesteuert werden oder es kann ihnen sogar ein neues GUI gegeben werden. qvscript kommt an der Fachhochschule Kaiserslautern / Zweibrücken zum Einsatz, um das Booten mit Auswahl am Bootmanager einschließlich einem Login-Vorgang und kritischen Applikation in den zahlreichen Schulungsräumen zu testen und ggf. Alarme auszusenden.