Bei EnumWindows komm ich leider mit der CallBack Funktion nicht klar.
Ich benutze jetzt die folgende Methode, die auch funktioniert!
Delphi-Quellcode:
procedure TForm1.GetProgList;
procedure getTitle(MyHandle:THandle);
var i:integer;
s:
Array[0..MAX_PATH]
of char;
begin
i:= GetWindowTextLength(MyHandle);
If i > 0
then
begin
GetWindowText(MyHandle,s,SizeOf(s));
ListView3.Items.Add;
i:=ListView3.Items.Count-1;
ListView3.Items[i].Caption:=s;
ListView3.Items[i].SubItems.Add('
Status');
end;
end;
var MyHandle: THandle;
begin
MyHandle:=GetWindow(
Handle, GW_HWNDFIRST);
If MyHandle > 0
then
begin
getTitle(MyHandle);
while MyHandle > 0
do
begin
MyHandle:= GetWindow(MyHandle, GW_HWNDNEXT);
If ((IsWindowVisible(MyHandle))
or (IsIconic(MyHandle)))
and((GetWindowLong(MyHandle, GWL_HWNDPARENT) = 0))
then getTitle(MyHandle);
end;
end;
end;