Contributor: FERDINAND SOETHE
function FindMatchingWindows(SearchFor: string; AtBeginning: boolean; var FoundWindows: TStringList): longint;
{Search window list for all Windows where the title contains or begins
 with (AtBeginning) SearchFor. Returns a TStringList with the title of the
 found windows as string and the window-Handle as Object.
 It is up to you to create and free the TStringList}
var
 hWndFirst, hWndCurWin, hWndDesk: HWnd;
 szWinText: pChar;
 WinText: string;
 foundAt: byte;
begin
 hWndDesk:= GetDesktopWindow;
 {This ist the parent of alle top-level windows}
 if hWndDesk  0 then
 hWndCurWin := GetWindow(hWndDesk,GW_CHILD)
 else
 {place error handling here}
 exit;
 if not assigned(FoundWindows) then
 {you have to create Stringlist before passing the
 variable to this function}
 exit;
 getMem(szWinText,256);
 hWndFirst:= hWndCurWin;
 while (hWndCurWin  0) do
 begin
 GetWindowText(hWndCurWin, szWinText,255);
 WinText:= strpas(szWinText);
 if SearchFor = '' then
 begin
 if WinText = '' then Wintext := format ('Fenster Nr. %d (Ohne Titel)',[hWndCurWin]);
 FoundWindows.addObject(WinText,TObject(hWndCurWin))
 end
 else
 begin
 foundAt:= pos(SearchFor, WinText);
 if (not atBeginning and (foundAt> 0)) or (foundAt = 1) then
 begin
 FoundWindows.addObject(WinText,TObject(hWndCurWin));
 end;
 end;
 hWndCurWin := GetWindow(hWndCurWin,GW_HWNDNEXT);
 end;
 freeMem(szWinText,256);
 result := FoundWindows.count;
end;


AltStyle によって変換されたページ (->オリジナル) /