"GCW\[Daten]" für "GetChildWindow", "GAC\[Daten]" für "GetAnyChild", "ICW\[Daten]" für "IfChildWindow", "ECW\" für "EndChildWindow". Siehe auch: "SPC\", "SWC\", "SAC\", "IEC\". Siehe auch: "Abfragen".
Die zuverlässige Ermittlung eines Handles von einem (Kind)fenster ist eine der
wichtigsten Aufgaben im Zusammenhang mit der Automatisierung von Abläufen.
Die "klassische" Suche orientiert sich an der Fensterklasse und - soweit vorhanden
- der Beschriftung sowie der Eltern-Kind-Beziehung von Fenstern. Alternativ
besteht die Möglichkeit, die Control-ID eines Kindfensters zu verwenden (siehe
"SPC\", "SWC\").
Jede dieser Methoden für sich allein bietet jedoch keine
100%ige Gewähr, bei verschachtelten Fensterstrukturen und mehreren gleichen
Fenstern auf einer Ebene eine sichere Identifikation zu gewährleisten. Die hier
vorgestellten Befehle können optional alle für die Beschreibung eines Fensters
relevanten Kriterien berücksichtigen: - Control-ID, - Fensterbeschreibung mittels
Klasse und Text sowie - Hierarchie-Ebene. Damit ist es in der Regel möglich, ein Kindfenster in beliebiger Tiefe mit nur
einem Befehl zu lokalisieren, wenn das zugehörige Topfenster bereits lokalisiert
ist. Die Syntax lautet: GCW\[CtrlID][\Level][\Class\Text] [] = optional CtrlID = Identifier des Kindfensters, wie er im Analyzer angezeigt wird (vgl.
"SWC\"), Level = Hierarchietiefe, beginnend mit 1 (siehe Analyzer, linke Kante), Class\Text= Fensterbeschreibung (siehe auch "Suchbegriffe"). Alle drei Angaben sind optional; in vielen Fällen ist die Control-ID ausreichend
für eine Lokalisierung, manchmal jedoch müssen auch Level und Beschreibung
mit einbezogen werden. Ob das notwendig ist, hängt von den konkreten
Umständen ab und muß sorgfältig eruiert werden. Andererseits gibt es seltene
Fälle, in denen sich die Control-ID ändert. Dann ist dieser Teil leer zu lassen; die
Lokalisierung erfolgt in diesem Fall nur über Ebene und Beschreibung. Im
Analyzer können Sie das durch Entfernen des Häkchens bei "ID" erreichen; dann
wird in den Editor keine Control-ID eingefügt.
Verwenden Sie "GAC\"
mit der gleichen Befehlssyntax, um ein Kindfenster ohne
vorherige Lokalisierung eines Elternfensters auf dem gesamten Desktop zu
suchen (vgl. "SAC\"). Wurde ein der Beschreibung entsprechendes Kindfenster
gefunden, werden gleichzeitig das aktuelle Top- und Parentfenster angepaßt, so
daß Sie nachfolgend auch Befehle einsetzen können, die ein lokalisiertes
Topfenster voraussetzen wie z.B. "MSC\". Da jedoch Control-IDs im Gegensatz zu den temporären Fensterhandles
mehrfach existieren können, ist "GAC\" nur zu empfehlen, wenn Sie eine
zusätzliche Einschränkung des Suchbereichs z.B. mittels "WMS\" machen
können bzw. sicher sind, daß es keine gleiche Parameterkombination geben kann.
HINWEIS: Standardmäßig wird das Kindfenster nur dann gefunden, wenn es zumindest sichtbar und enabled ist. Wenn Sie die Suche auf alle, d.h. auch unsichtbare und
disablede ausdehnen wollen, geben Sie am Ende des Datenteil die Zeichenfolge
"|a" (für "all") an.
Mit der Abfrage "ICW\"
können Sie ermitteln, ob das im Datenteil beschriebene
Fenster existiert; die Befehle zwischen "ICW\..." und "ECW\" werden nur dann
ausgeführt, wenn das beschriebene Fenster vorhanden ist. Die Syntax lautet: ICW\[Präzisierung]\[CtrlID][\Level][\Class\Text] [] = optional CtrlID = Identifier des Kindfensters, wie er im Analyzer angezeigt wird (vgl.
"SWC\"), Level = Hierarchietiefe, beginnend mit 1 (siehe Analyzer, linke Kante), Class\Text= Fensterbeschreibung (siehe auch "Suchbegriffe"). Standardmäßig ist die Bedingung erfüllt, wenn das beschriebene Fenster existiert.
Sie können aber eine Präzisierung der Vorgaben machen, indem Sie zwischen
dem Befehl und dem ersten Backslash eine Ziffer angeben, die eine Summe der
nachfolgenden Eigenschaften beinhaltet: 1 = muß sichtbar sein 2 = muß unsichtbar sein 4 = muß enabled sein 8 = muß disabled sein 128 = muß das Kindfenster mit dem Eingabefokus sein 512 = muß unmittelbares Kindfenster des zuletzt lokalisierten Fensters sein. Im Gegensatz zu anderen Abfragen (z.B. "IEC\") muß der erste Backslash immer
vorhanden sein. Wenn Sie für einen der Paramter einen Wert angeben wollen,
müssen zumindest alle Trennzeichen ("\") vor diesem Parameter vorhanden sein!
HINWEIS: Bei allen Befehlen, die ein Kindfenster für einen Mausklick lokalisieren, können
Sie die Zeile für den Mausklick sparen, indem Sie am Ende des Datenteils vom
Lokalisierungsbefehl ein Pluszeichen ("+")
und danach eine Ziffer eingeben.
Dazu muß allerdings die Option 2 eingeschaltet sein; näheres siehe unter "OPT\".
© 2006 by Delphin Software
|