Control


Verändert verschiedene Eigenschaften eines Controls.

Control, Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]

Parameter

Cmd, Value Siehe unten stehende Auflistung.
Control

Entweder die ClassNN (Klassenname und Instanznummer) oder der Name/Text (Aufschrift/Inhalt) des Controls, wie sie mit dem "Window Spy" ermittelt werden können. Bei Angabe von Name/Text wird das Suchergebnis von der aktuellen Einstellung für SetTitleMatchMode beeinflusst. Wenn der Parameter leer gelassen wird, wird das oberste Control des Zielfensters verwendet.

Wenn mit dem HWND (window handle, ahk_id, eindeutige Identifikationsnummer) eines Controls gearbeitet werden soll, wird der Control Parameter leer gelassen und stattdessen ahk_id %ControlHwnd% als WinTitle Parameter angebeben. Das funktioniert auch für verborgene Controls, selbst wenn DetectHiddenWindows auf OFF gesetzt ist. Das HWND eines Controls kann z.B. mit ControlGet Hwnd, MouseGetPos oder DllCall ermittelt werden.

WinTitle

Der vollständige Titel oder ein Teil des Titels des Zielfensters (das Suchergebnis wird von SetTitleMatchMode beeinflusst). Wenn dieser und die nächsten 3 Parameter leer gelassen werden, wird das LastFoundWindow (zuletzt gefundene Fenster) verwendet. Wenn hier der Buchstabe A angegeben wird und die nächsten 3 Parameter leer gelassen werden, wird das momentan aktive Fenster verwendet. Für eine Fensterklasse wird ahk_class ExakterKlassenName (wie vom "Window Spy" angezeigt) angegeben, für eine Prozess ID (PID) ahk_pid %VarMitInhaltPID%, für eine Fenstergruppe ahk_group GroupName und für die eindeutige ID eines Fensters ahk_id %VarMitInhaltID%. Die Suche kann durch Angabe mehrerer Kriterien eingeschränkt werden. Beispiel: My File.txt ahk_class Notepad

WinText

Wenn angegeben, muss dieser Parameter den Inhalt oder einen Teil des Inhalts eines einzelnen Textelementes des Zielfensters enthalten, wie er z.B. vom mitgelieferten "Window Spy" angezeigt wird. Verborgene Textelemente werden nur gefunden, wenn DetectHiddenText vorher auf ON gesetzt wurde.

ExcludeTitle

Fenster, deren Titel diesen Wert enthalten, werden bei der Suche übergangen.

ExcludeText

Fenster, deren Text diesen Wert enthält, werden bei der Suche übergangen.

Cmd, Value

Die Cmd (Kommando) und Value (Wert) Parameter sind abhängig voneinander. Ihre Verwendung wird nachfolgend beschrieben:

Check: Schaltet (Checks) einen RadioButton oder eine CheckBox ein.

Uncheck: Schaltet einen RadioButton oder eine CheckBox aus.

Enable: Aktiviert ein Control, wenn es vorher deaktiviert war.

Disable: Deaktiviert ein Control ("graut es aus").

Show: Zeigt ein Control an, wenn es vorher verborgen war.

Hide: Verbirgt ein Control. Wenn zusätzlich auch eine vorhandene Shortcut Taste (unterstrichener Buchstabe) abgeschaltet werden soll, muss das Control mit "Control Disable" deaktiviert werden.

Style,N oder ExStyle,N: Ändert die Gestaltungseigenschaften (Style) oder die erweiterten Gestaltungseigenschaften (ExStyle) eines Controls. Wenn das erste Zeichen in N ein Plus- oder Minuszeichen ist, werden die Gestaltungsangaben in N entsprechend hinzugefügt bzw. entfernt. Wenn das erste Zeichen das Caret (^) ist, werden die in N angegebenen Gestaltungseigenschaften "umgeschaltet", d.h. vorhandene Eigenschaften werden entfernt, nicht vorhandene hinzugefügt. Wenn das erste Zeichen eine Ziffer ist, werden die Gestaltungseigenschaften des Controls komplett überschrieben, d.h. durch den Inhalt von N ersetzt. ErrorLevel wird auf 1 gesetzt, wenn das Zielfenster oder -control nicht gefunden wurde oder die angegebenen Gestaltungseigenschaften nicht verwendet oder verändert werden dürfen (das kommt besonders unter Windows 9x häufiger vor).

Bestimmte Gestaltungsänderungen benötigen das Neuzeichnen des kompletten Fensters mit WinSet Redraw. Die Gestaltungstabelle enthält einige der den Gestaltungseigenschaften zugewiesenen Nummern. Beispiel:

Control, Style, ^0x800000, Edit1, WinTitle ; Schaltet die WS_BORDER Eigenschaft in den entgegengesetzten Status um.

ShowDropDown: Zeigt die Listbox einer ComboBox an, so dass die Auswahl sichtbar wird.

HideDropDown: Vebirgt die obengenannte Listbox.

TabLeft [, Count] und TabRight [, Count]: Bewegt sich in einem SysTabControl32 um einen oder mehrere Tabs (Registerkarten) nach links oder rechts. Count wird als 1 behandelt, wenn der Parameter leer ist. Um stattdessen ein Tab direkt über seine Nummer anzuwählen, muss die Ziffer 5 im nachfolgenden Beispiel durch die um 1 verminderte Nummer des Tabs ersetzt werden, der ausgewählt werden soll. Mit anderen Worten, 0 wählt den ersten Tab, 1 den zweiten, usw.:

SendMessage, 0x130C, 5,, SysTabControl321, WinTitle ; 0x130C ist TCM_SETCURSEL.

TabRight [, Count]: Bewegt sich in einem SysTabControl32 um einen oder mehrere Tabs nach rechts. Count wird als 1 behandelt, wenn der Parameter leer ist.

Add, String: Fügt den String als neuen Eintrag am Ende einer ListBox oder ComboBox ein (v1.0.42+ unterstützt auch TListBox, TComboBox und möglicherweise auch weitere).

Delete, N: Entfernt den Nten Eintrag einer ListBox oder ComboBox (v1.0.42+ unterstützt auch TListBox, TComboBox und möglicherweise auch weitere). N ist 1 für den ersten Eintrag, 2 für den zweiten, usw.

Choose, N: Wählt den Nten Eintrag einer ListBox oder ComboBox aus (v1.0.42+ unterstützt auch TListBox, TComboBox und möglicherweise auch weitere). N ist 1 für den ersten Eintrag, 2 für den zweiten, usw. Um alle Einträge einer ListBox mit Mehrfachauswahl aus- oder abzuwählen, ist das folgende Beispiel entsprechend anzuwenden:

SendMessage, 0x1330, 5,, SysTabControl321, WinTitle  ; 0x1330 ist TCM_SETCURFOCUS.
Sleep 0 ; Diese und die folgende Zeile sind nur für manche Tab-Controls notwendig.
SendMessage, 0x130C, 5,, SysTabControl321, WinTitle ; 0x130C ist TCM_SETCURSEL.

ChooseString, String: Setzt die Auswahl in einer ListBox oder ComboBox auf den Eintrag, der mit der Zeichenfolge String beginnt (v1.0.42+ unterstützt auch TListBox, TComboBox und möglicherweise auch weitere). Bei der Suche wird die Groß/Kleinschreibung nicht beachtet. Wenn eine ListBox/ComboBox z.B. den Eintrag "UNIX Text" enthält, reicht die Angabe des Wortes "unix" (kleingeschrieben) aus, um den Eintrag auszuwählen.

EditPaste, String: Fügt den String an der Position der Einfügemarke in ein Editcontrol ein. Der Inhalt der Zwischenablage (ClipBoard) wird dabei nicht verändert.

ErrorLevel

ErrorLevel wird im Falle eines Problems auf 1 gesetzt, sonst auf 0.

Anmerkungen

Um die Zuverlässigkeit zu erhöhen, wird nach jeder Ausführung dieser Anweisung automatisch eine kurze Pause eingelegt (ausgenommen Style und ExStyle). Die Länge dieser Pause kann mit SetControlDelay verändert werden.

Um den Namen des Controls zu bestimmen, über dem sich der Mauszeiger befindet, verwendet man MouseGetPos.

Bei Fenstertiteln und -texten muss die Groß/Kleinschreibung beachtet werden. Verborgene Fenster werden nur gefunden, wenn DetectHiddenWindows vorher auf ON gesetzt wurde.

Siehe auch

SetControlDelay, ControlGet, GuiControl, ControlGetText, ControlSetText, ControlMove, ControlGetPos, ControlClick, ControlFocus, ControlSend, WinSet

Beispiel

Control, HideDropDown, , ComboBox1, Ein Fenster-Titel