Mit EnumWindows -> EnumWindowsProc -> GetWindowText solltest Du so gut wie alle Fenster bekommen. Auch Fenster, die zu einem NotifyIcon minimiert sind.
Das Ergebnis von GetWindowText kannst Du ja mit Deinem VorgabeText vergleichen.
Delphi-Quellcode:
function EnumWindowsProc(HWindow : HWnd; LParameter : lParam): Boolean; stdcall;
var
CaptionText : PChar;
i : Integer;
begin
CaptionText := StrAlloc(255);
i := GetWindowText(HWindow, CaptionText, 255);
if i > 0 then
Form1.ListBox1.Items.Add(String(CaptionText));
StrDispose(CaptionText);
Result := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Windows.EnumWindows(@EnumWindowsProc, 0);
end;
In EnumWindowsProc auf Form1 zuzugreifen ist natürlich nur eine schnelle Notlösung, um das Ergenis zu testen. Das "muss" in einer eingesetzten Variante natürlich anders gelöst werden.