ControlGetItems

Gibt ein Array aller Einträge in einem Listenfeld, Kombinationsfeld oder einer Dropdownliste zurück.

Einträge := ControlGetItems(StrlmntID , FensterTitel, FensterText, AusnahmeTitel, AusnahmeText)

Parameter

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.

Rückgabewert

Typ: Array

Diese Funktion gibt ein Array zurück, das den Text jedes Listeneintrags enthält.

Fehlerbehandlung

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

Es wird ein Error ausgelöst, wenn z.B. eine Meldung einen Fehlercode zurückgibt oder nicht gesendet werden konnte.

Bemerkungen

Diese Funktion 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.

Einige Anwendungen speichern ihre Steuerelementdaten privat, wodurch AutoHotkey keinen Text abrufen kann. In solchen Fällen wird normalerweise keine Ausnahme ausgelöst, aber der gesamte abgerufene Text wird leer sein.

Um die Anzahl aller Listeneinträge abzurufen, verwenden Sie Array.Length wie in Beispiel #3. Um stattdessen herauszufinden, wie viele Registerkarten ein Registerkarten-Steuerelement hat, gehen Sie wie folgt vor:

RegisterkartenAnzahl := SendMessage(0x1304,,, "SysTabControl321", FensterTitel)  ; 0x1304 ist TCM_GETITEMCOUNT.

ListViewGetContent, WinGetList, Control-Funktionen

Beispiele

Greift nacheinander auf die Einträge eines Kombinationsfelds in einem GUI- oder Nicht-GUI-Fenster zu.

for Eintrag in ControlGetItems("ComboBox1", "Beliebiger Fenstertitel")
    MsgBox "Eintrag Nr. " A_Index " ist " Eintrag

Greift per Positionsnummer auf einen bestimmten Eintrag eines Listenfelds in einem GUI- oder Nicht-GUI-Fenster zu.

Einträge := ControlGetItems("ListBox1", "Beliebiger Fenstertitel")
MsgBox "Der erste Eintrag ist " Einträge[1]
MsgBox "Der letzte Eintrag ist " Einträge[-1]

Meldet die Anzahl aller Einträge in einem Listenfeld innerhalb eines GUI- oder Nicht-GUI-Fensters.

Einträge := ControlGetItems("ListBox1", "Beliebiger Fenstertitel")
MsgBox "Die Gesamtzahl ist " Einträge.Length