Tutorial - 3
Übersicht 
Anwendung 
Referenzen 
Bestellung 
Download 
Kontakt 
Links 

Worum geht es?

In der letzten Übung wurde gezeigt, wie eine Anwendung mit automatischen Mausklicks gesteuert werden kann, wenn dies mit Tastaturaktionen nicht möglich ist. Als eine in allen Windows-Versionen verfügbare Beispielanwendung diente hierbei der Rechner (unter Start/alle Programme/Zubehör/Rechner).

Der "blinde" Mausklick auf die Schaltfläche MS funktioniert allerdings nicht immer:
Wählt man im Ansicht-Menü des Rechners die wissenschaftliche Darstellung aus, dann erscheint die MS-Schaltfläche in der Mitte des Rechner-Fensters und nicht mehr links, wie in der Standardansicht:

Ein Mausklick auf einmal festgelegte, fixe Koordinaten ließ sich zwar mit dem beiliegenden Skript ClickApp.vbs sehr einfach realisieren, ist aber bei solchen ortsveränderlichen Bedienelementen nicht sinnvoll.

Stattdessen soll in der nachfolgenden Übung zunächst die Position der Schaltfläche im Programmfenster bestimmt werden, bevor der Klick erfolgt, dann erfolgt der Mausklick unabhängig von der gewählten Ansicht immer an der richtigen Stelle.
Workarounder führt Positionsbestimmungen und Zustandsüberprüfungen von Bedienelementen anhand ihres Erscheinungsbildes auf dem Bildschirm durch.
Voraussetzung hierfür ist, dass das Aussehen des Bedienelements immer gleich bzw. auf einige wenige Zustände festgelegt ist.

Mit den unter Windows Vista voreingestellten Ansichts-Optionen, ist bei manchen Anwendungen diese Voraussetzung nicht 100%-ig gegebenen: Bei Berührung mit dem Mauszeiger "laufen die Schaltflächen blau an", wie man in der obigen Abbildung sieht. Für die nachfolgende Übung und ähnliche Anwendungsfälle sollten daher Vista-Benutzer das Standard-Farbschema einstellen.

Übung 3: Mausklick auf ortsveränderliche Schaltfläche

Genau wie in der letzten Übung wenden Sie die Bildschirmlupe aus dem Tools-Menü des Workarounder-Hauptfensters auf die MS-Schaltfläche des Rechners an:

  1. Selektieren Sie das Rechner-Fenster in der Auswahlliste
  2. Klicken Sie auf die Schaltfläche "Auf Bildschirmausschnitt ziehen" und ziehen Sie mit gedrückter Maustaste auf die MS-Schaltfläche, so dass sich die Schaltfläche bündig in der oberen linken Ecke des überwachten Bildschirmausschnitts befindet.
  3. Für bessere Sichtbarkeit im nächsten Schritt klicken Sie dann rechts auf den Bildschirmausschnitt  und wählen im Kontextmenü: Cyanblaue Markierung

 

 

   
 


Anschließend erzeugen Sie den Code für ein Button-Objekt, dass genau den Bildschirmausschnitt der Schaltfläche überwacht:
Achten Sie beim nächsten Schritt einmal auf das Textfeld Fingerabdruck. Er besteht aus 4 Zahlengruppen, die durch Leerzeichen getrennt sind und sich ändern, wenn Sie den Bildschirmausschnitt modifizieren.
Die ersten 3 Zahlen entsprechen dabei dem RGB-Farbwert des eingekringelten "Zentralen Pixels" in der Mitte des Bildschirmausschnitts. Die letzte, längere Zahl ist eine CRC32-Prüfsumme für den Inhalt des Bildschirmausschnitts.

  1. Verkleinern Sie den überwachten Bildschimausschnitt anhand der Eingabefelder für die Größe.
  2. Jetzt werden Sie wahrscheinlich feststellen, das der cyanblaue Kringel in der Mitte des Bildschirmausschnitts einen grauen Pixel markiert. Dies sollte unbedingt korrigiert werden. (siehe unten, Hinweise 1 und 2).
    Klicken Sie mit der linken Maustaste einen roten Pixel im Bildschirmausschnitt an. Wiederholen Sie dies nötigenfalls bis wirklich ein roter Pixel markiert ist (Erste Zahlengruppe des Fingerabdrucks deutlich höher als die nächsten beiden.)
  3. Sie haben soeben ein Button-Objekt konfiguriert. Kopieren Sie den Code des Objektes mit der entsprechenden Schaltfläche in die Zwischenablage
  4. Schließen Sie die Bildschirmlupe mit der Fertig-Schaltfläche.

Nun können Sie den Ereignisdatensatz aus der letzten Übung so anpassen, dass er sowohl für die Standardansicht als auch für die wissenschaftliche Ansicht des Rechners funktioniert. Dazu erstellen Sie für den Datensatz ein neues Skript:

  1. Deaktivieren Sie das Kontrollkästchen "Par", die Parameter werden nicht mehr gebraucht.
  2. Klicken Sie auf die Schaltfläche "(Neues) Skript wählen"
  3. Navigieren Sie in ein passendes Unterverzeichnis bzw. erstellen Sie ein solches. Geben Sie einen Dateinamen für das neue Skript ein. Vergeben Sie dabei unbedingt die Dateiendung VBS.
  4. Mit der Schaltfläche "Öffnen" zeigen Sie das neue Skript im Editor an.
   

 


Im Editor sehen Sie nun Ihr neues Skript, das bereits ein paar Textzeilen aus einer Vorlage-Datei enthält (siehe nachfolgende Abbildung).
Im oberen, gelb markierten Teil können Sie Ihren eigenen Kommentar zu Sinn und Zweck dieses Skriptes anlegen. (Denken Sie daran, jede Kommentarzeile mit einem Hochkomma einzuleiten.)
Im zweiten, grau hinterlegten Teil werden einige oft benötigte Objekte definiert. In unserem Fall sind diese nicht notwendig, sie stören aber auch nicht. Wenn Sie möchten, können Sie diese Zeilen löschen.

Nehmen Sie an dem Text folgende Ergänzungen vor:

  1. Am Ende des Textes fügen Sie den Inhalt der Zwischenablage ein. Es sollte der Code Ihres Button-Objekts erscheinen (ähnlich der Abbildung) .
  2. Als letzte Zeile tippen Sie (Groß-/Kleinschreibung spielt keine Rolle):
    if button1.FindPos  then  button1.Click
   

 


Nachdem Sie Ihr Skript gespeichert und den Editor geschlossen haben, erscheinen Name und Pfad des neuen Skriptes in den Auswahlfeldern rechts im Ereignisdatensatz.
Wenn Sie das Hauptfenster schließen und im Rechner die Pfeil-nach-oben-Taste drücken, wird die Taste gefunden und betätigt, unabhängig davon, ob Sie in der wissenschaftlichen oder in der Standardansicht sind.

Der aus der Zwischenablage eingefügte Code erzeugt dabei das Button-Objekt und parametriert es mit den von Ihnen in der Bildschirmlupe vorgegebenen Einstellungen.

Die von Ihnen im 2. Schritt erstellte Programmzeile versucht, die Position der Schaltfläche anhand des Fingerabdrucks im Rechner-Fenster zu ermitteln. Wenn dies erfolgreich ist, wird ein Linksklick auf die Schaltfläche durchgeführt.

Analog hierzu können Sie einen 2. Datensatz mit einem weiteren Skript anlegen, der den Speicherinhalt des Rechners mit der Pfeil-nach-unten-Taste wieder in die Anzeige des Rechners "herunterlädt". Dann steht einer mausfreien Bedienung des Rechner-Speichers nichts mehr im Wege.

In der nächsten Übung sehen Sie, wie eine benutzerdefinierte Aktion nicht per Tastatur, sondern per Mausklick ausgelöst werden kann.

Hinweis 1 zu weiteren Informationen über die Bildschirmlupe:

Zu diesem Anwendungsbeispiel gibt es 2 Video-Demos. Das 1. Video (mit Sound) ist weitgehend inhaltsgleich zu dieser Tutorial-Übung.

In der 2. Demo (ebenfallls mit Ton) gibt es viele Hintergrund-Informationen zu der Bildschirmlupe und dem Button-Objekt.
Unter anderem wird erklärt, warum es wichtig ist, das der Zentrale Pixel so angepasst wird, dass er auf eine möglichst selten im Fenster vorkommende Farbe zeigt. Man kann nämlich die Geschwindigkeit beim Lokalisieren der Schaltfläche im Programmfenster dadurch entscheidend erhöhen (oder bei falscher Wahl des zentralen Pixels extrem träge machen).
Siehe hierzu auch das Hilfekapitel "Suchvorgänge und die Bedeutung des zentralen Pixels".

Hinweis 2 zum "Versatz" des zentralen Pixels

Wenn Sie den Zentralen Pixel positionieren, können Sie das zum Einen über einen linken Mausklick in den Bildschirmausschnitt tun. Zum Anderen können Sie die Positionierung auch pixelgenau  vornehmen. Wählen Sie dazu die Ansichtsoption "Profi" unten links in der Bildschirmlupe.
In die Eingabefelder für den "Versatz" können Sie dann die Position des Zentralen Pixels eingeben. Auch dies wird in der oben erwähnten 2. Demo vorgeführt.
Eine Beschreibung finden Sie außerdem im Hilfekapitel "Bildschirmlupe und Code-Generator".

Hinweis 3 zu den Befehlen des Button-Objektes:

Wie diese Übung zeigt, kann man mit den Funktionen des Button-Objekts wesentlich mehr, als nur simple Mausklicks ausführen.  
Eine Dokumentation sämtlicher Funktionen findet man natürlich in der Hilfe.
Eine Übersicht der wichtigsten Funktionen ist auf der Referenzkarte enthalten, die Sie als PDF-Datei im Hilfe-Menü finden.

Der Programmtext für die Erstellung  und Parametrierung des Button-Objektes wird in der Regel über die Bildschirmlupe erzeugt, so wie in dieser Übung gezeigt.
Die teilweise recht komplexen Operationen, die hinter den Funktionen des Button-Objektes stecken, lassen sich dann als "Einzeiler" aufrufen.

Viele der auf der Referenzkarte aufgelisteten Operationen können über Parameter, die in der Hilfe erläutert sind, noch etwas spezieller ausgeführt werden.

Wer noch genauer Einfluss nehmen möchte, der sei auf das WinTools-Objekt verwiesen, mit dem sich solche Operationen in weiter detaillierten Einzelschritten aufbauen lassen. 

Hinweis 4 zu weiteren Beispielen (bedingter Mausklick)

Für die hier vorgestellte Technik gibt es ein weiteres Anwendungsbeispiel, das sich mit der Beantwortung einer Dialogbox beschäftigt. Der Inhalt der Dialogbox (bzw. eines bestimmten Bildschirmausschnittes) wird als Entscheidungskriterium dafür verwendet, ob ein Mausklick ausgeführt wird oder nicht.
In der dort aufgeführten Variante für fortgeschrittene Benutzer ist eine weitere Eigenschaft des Button-Objektes erläutert: Über ClickOffset benutzen Sie den Versatz, um mit dem Button-Objekt auch außerhalb seines Bildschirmausschnitts Mausklicks vorzunehmen.

   

 

[Zurück][Nach oben][Weiter]

Copyright(c) 2007 Uta Nerger. Alle Rechte vorbehalten.