ControlChooseIndex

Selektiert per Positionsnummer einen Eintrag in einem Listenfeld, Kombinationsfeld oder einer Dropdownliste, oder eine Registerkarte in einem Registerkarten-Steuerelement.

ControlChooseIndex N, StrlmntID , FensterTitel, FensterText, AusnahmeTitel, AusnahmeText

Parameter

N

Typ: Integer

Die Positionsnummer des Listeneintrags oder der Registerkarte, der/die ausgewählt werden soll, wobei 1 die erste Position, 2 die zweite und so weiter ist.

Geben Sie 0 an, um alle Listeneinträge abzuwählen. Für Registerkarten-Steuerelemente ist die Angabe von 0 ungültig und löst eine Ausnahme aus, da Nicht-GUI-Fenster in der Regel nicht damit umgehen können.

StrlmntID

Typ: Zeichenkette, Integer oder Objekt

ClassNN, Text oder HWND des Steuerelements, oder ein Objekt mit einer Hwnd-Eigenschaft. Einzelheiten finden Sie unter Steuerelementidentifikatoren.

FensterTitel, FensterText, AusnahmeTitel, AusnahmeText

Typ: Zeichenkette, Integer oder Objekt

Wenn jeder dieser Parameter leer ist oder weggelassen wird, wird das Zuletzt Gefundene Fenster verwendet. Andernfalls geben Sie für FensterTitel einen Fenstertitel oder andere Kriterien zur Identifizierung des Zielfensters und/oder für FensterText eine Teilzeichenkette aus einem Textelement des Zielfensters an (wie von Window Spy angezeigt).

AusnahmeTitel und AusnahmeText können verwendet werden, um ein oder mehrere Fenster anhand ihres Titels oder Textes auszuschließen. Ihre Angabe ähnelt der von FensterTitel und FensterText, außer dass AusnahmeTitel keine anderen Kriterien als den Fenstertitel erkennt.

Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows bzw. DetectHiddenText geändert werden kann. Verwendet man reine HWNDs, werden versteckte Fenster immer erkannt. Standardmäßig kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.

Fehlerbehandlung

Es wird ein TargetError ausgelöst, wenn das Fenster oder Steuerelement nicht gefunden werden konnte oder wenn der Klassenname des Steuerelements weder "Combo", "List" noch "Tab" enthält.

Es wird ein Error oder OSError ausgelöst, wenn die Änderung nicht angewendet werden konnte.

Bemerkungen

Diese Funktion ist für die Verwendung mit Steuerelementen in einem Nicht-GUI-Fenster vorgesehen, also einem Fenster, das nicht mit der Gui-Funktion erstellt wurde. Sie funktioniert am besten mit den gängigen oder vordefinierten Steuerelementen von Microsoft. Einige Anwendungen verwenden jedoch benutzerdefinierte oder modifizierte Steuerelemente – in diesem Fall funktioniert die Funktion möglicherweise nicht wie erwartet. Für GUI-Steuerelemente ist es in der Regel sinnvoller, GuiControl.Choose zu verwenden.

Um alle Listeneinträge in einem Mehrfachauswahl-Listenfeld auszuwählen, verwenden Sie PostMessage(0x0185, 1, -1, "ListBox1", FensterTitel) (0x0185 ist LB_SETSEL). Alternativ können Sie diese Funktion für jedes Element im Array aufrufen, das von ControlGetItems zurückgegeben wird:

for index, text in ControlGetItems("ListBox1", FensterTitel)
    ControlChooseIndex(index, "ListBox1", FensterTitel)

Im Gegensatz zu GuiControl.Choose löst diese Funktion ein Change- oder DoubleClick-Ereignis aus.

Um die Zuverlässigkeit zu erhöhen, erfolgt jedes Mal, nachdem diese Funktion verwendet wurde, automatisch eine Verzögerung. Diese Verzögerung kann mit SetControlDelay oder durch Zuweisung eines Wertes an A_ControlDelay geändert werden. Weitere Informationen finden Sie unter SetControlDelay-Bemerkungen.

ControlGetIndex, ControlChooseString, GuiControl.Choose, Control-Funktionen