ListViewGetContent

Gibt eine Liste bestimmter oder aller Elemente/Zeilen in einer ListView zurück.

Liste := ListViewGetContent(Optionen, Steuerelement, FensterTitel, FensterText, AusnahmeTitel, AusnahmeText)

Parameter

Optionen

Typ: Zeichenkette

Gibt an, was abgerufen werden soll. Wenn leer oder weggelassen, wird der gesamte Text in der ListView abgerufen. Andernfalls geben Sie beliebig viele der folgenden Wörter an, jeweils getrennt durch ein Leer- oder Tabulatorzeichen:

Selected: Gibt nur die markierten (hervorgehobenen) Zeilen zurück. Wenn keine vorhanden ist, ist der Rückgabewert leer.

Focused: Gibt nur die fokussierte Zeile zurück. Wenn keine vorhanden ist, ist der Rückgabewert leer.

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

Count: Gibt eine einzelne Zahl zurück, die die Gesamtanzahl der Zeilen in der ListView repräsentiert.

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

Count Focused: Gibt die Zeilennummer (Position) der fokussierten Zeile zurück (andernfalls 0).

Count Col: Gibt die Anzahl der Spalten in der ListView zurück (oder -1, wenn die Anzahl nicht ermittelt werden kann).

Steuerelement

Typ: Zeichenkette, Integer oder Objekt

ClassNN-Bezeichnung, Text oder HWND-Nummer des Steuerelements, oder ein Objekt mit einer Hwnd-Eigenschaft. Einzelheiten finden Sie unter Der Steuerelement-Parameter.

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 (Textelemente können mit dem internen Tool "Window Spy" in Erfahrung gebracht werden).

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 und DetectHiddenText geändert werden kann. 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

Diese Funktion gibt eine Liste von Elementen/Zeilen zurück. Innerhalb jeder Zeile endet jedes Feld (Spalte) außer dem letzten mit einem Tabulatorzeichen (`t). Um die Elemente/Zeilen einzeln durchzugehen, können Sie eine parsende Schleife verwenden, wie in Beispiel #1 gezeigt.

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 die ListView 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

Einige Anwendungen behandeln die Daten ihrer ListView vertraulich, so dass ihr Text nicht abgerufen werden kann. In solchen Fällen wird normalerweise keine Ausnahme ausgelöst, aber alle abgerufenen Felder sind leer.

Es ist auch möglich, mit SendMessage die Spalten einer ListView kleiner/größer zu machen. Zum Beispiel:

SendMessage(0x101E, 0, 80, "SysListView321", FensterTitel)  ; 0x101E ist die Meldung 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, Control-Funktionen

Beispiele

Extrahiert einzelne Zeilen und Felder aus einer ListView.

Liste := ListViewGetContent("Selected", "SysListView321", FensterTitel)
Loop Parse, Liste, "`n"  ; Die Zeilen sind mit LF-Zeichen (`n) 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
}