Ich hab mir mal zu diesem Thema Gedanken gemacht und mal eine Funktion geschrieben. Vielleicht ist sie sogar nützlich:
Delphi-Quellcode:
function SearchSysListView(HWND: THandle): THandle;
var
return: THandle;
ClassName:
string;
count: integer;
const
MaxClassLength = 256;
begin
Result:= 0;
// Die Klasse des Fensters wird ermittelt
SetLength(ClassName, MaxClassLength);
count:= GetClassName(HWND, PChar(ClassName), MaxClassLength);
If count = 0
then
RaiseLastOSError;
SetLength(ClassName, count);
// Falls das Fenster schon die Klasse besitzt wird das Handle zurückgegeben
If ClassName = '
SysListView32'
then begin
Result:= HWND;
Exit;
end;
// wenn die Klasse nicht SysListView32 ist dann folgen rekursive Aufrufe
// der Funktion mit den Handles aller Kinder des Fensters
return:=GetTopWindow(HWND);
If return <> 0
then begin
while (return <> 0)
and (Result = 0)
do begin
Result:= SearchSysListView(return);
return:= GetNextWindow(return, GW_HWNDNEXT);
end;
end;
end;
Sie macht alle Kinder des Fensters mit dem angegebenem
Handle durch nach einem Fenster mit der Klasse "SysListView32". Wenn sie es findet, dann gibt die Funktion das
Handle zurück, andernfalls gibt sie 0 zurück.
Wenn der Code schreckliche Fehler enthält, dann bitte nicht böse sein, ich bin noch Anfänger
Ciao, Reddog.