ListViewGetContent

Gibt Inhaltsdaten von einem ListView-Steuerelement zurück, z.B. Zeilen, Spalten oder Zählwerte.

Daten := ListViewGetContent(Optionen, StrlmntID, FensterTitel, FensterText, AusnahmeTitel, AusnahmeText)

Parameter

Optionen

Typ: Zeichenkette

Geben Sie an, was abgerufen werden soll. Wenn leer oder weggelassen, werden alle Zeilen im Steuerelement zurückgegeben. Andernfalls geben Sie beliebig viele der folgenden Wörter an, jeweils getrennt durch ein Leer- oder Tabulatorzeichen:

Selected: Gibt nur die markierten Zeilen zurück. Gibt es keine, wird Daten leer gemacht.

Focused: Gibt nur die fokussierte Zeile zurück. Gibt es keine, wird Daten leer gemacht.

ColN: Gibt nur die N-te Spalte (Feld) zurück. Ersetzen Sie N mit einer beliebigen Spaltennummer. Zum Beispiel gibt Col4 die vierte Spalte zurück.

Count: Gibt die Anzahl aller Zeilen im Steuerelement zurück.

Count Selected: Gibt die Anzahl der markierten Zeilen zurück.

Count Focused: Gibt die Zeilennummer (Position) der fokussierten Zeile zurück (oder 0, wenn es keine gibt).

Count Col: Gibt die Anzahl aller Spalten im Steuerelement zurück (oder -1, wenn die Anzahl nicht ermittelt werden kann).

StrlmntID

Typ: Zeichenkette, Integer oder Objekt

ClassNN, Text oder HWND des Steuerelements, oder ein Objekt mit einer Hwnd-Eigenschaft. Einzelheiten finden Sie unter Steuerelementidentifikatoren. Dieser Parameter ist ein Pflichtparameter, d.h. er kann nicht weggelassen werden.

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: Zeichenkette oder Integer

Diese Funktion gibt je nach Optionen entweder eine Liste von Zeilen oder einen Zählwert zurück.

Wenn der Rückgabewert eine Liste von Zeilen ist, endet jede Zeile außer der letzten mit einem Zeilenvorschubzeichen (`n). Innerhalb jeder Zeile endet jedes Feld (Spalte) außer dem letzten mit einem Tabulatorzeichen (`t).

Fehlerbehandlung

Es wird ein TargetError ausgelöst, wenn das Fenster oder Steuerelement nicht gefunden werden konnte.

Es wird ein OSError ausgelöst, wenn eine Meldung nicht an das Steuerelement gesendet werden konnte, oder wenn der Prozess, der das ListView-Steuerelement besitzt, nicht geöffnet werden konnte, z.B. weil Benutzerrechte fehlen oder der Prozess gesperrt ist.

Es wird ein ValueError ausgelöst, wenn die ColN-Option eine nicht-existierende Spalte angibt.

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-ListView-Steuerelemente ist es in der Regel sinnvoller, ihre internen Abrufmethoden zu verwenden.

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.

Es ist auch möglich, die Spalten in einem ListView-Steuerelement kleiner/größer zu machen. Verwenden Sie dazu SendMessage wie folgt:

SendMessage(0x101E, 0, 80, "SysListView321", FensterTitel)  ; 0x101E ist LVM_SETCOLUMNWIDTH.

Im obigen Beispiel steht 0 für die erste Spalte (1 für die zweite, 2 für die dritte und so weiter). 80 ist die neue Breite. Ersetzen Sie 80 mit -1, um die Spaltenbreite automatisch an den Inhalt anzupassen. Ersetzen Sie 80 mit -2, um dasselbe zu tun, aber unter Berücksichtigung der Überschriftsbreite.

ControlGetItems, WinGetList, GUI-ListView-Steuerelement, Control-Funktionen

Beispiele

Extrahiert einzelne Zeilen und Felder aus einem ListView-Steuerelement in einem GUI- oder Nicht-GUI-Fenster.

Liste := ListViewGetContent("Selected", "SysListView321", FensterTitel)
Loop Parse, Liste, "`n"  ; Zeilen sind mit Zeilenvorschüben (`n) voneinander getrennt.
{
    ZeileNummer := A_Index
    Loop Parse, A_LoopField, A_Tab  ; Die Felder (Spalten) jeder Zeile sind mit Tabulatorzeichen (A_Tab) getrennt.
        MsgBox "Zeile Nr. " ZeileNummer " Spalte Nr. " A_Index " enthält " A_LoopField
}