Es geht auch so:
Code:
function FindWindowEx(partialTitle: string): HWND;
var
hWndTemp: hWnd;
iLenText: Integer;
cTitletemp: array [0..254] of Char;
sTitleTemp: string;
begin
hWndTemp := FindWindow(nil, nil);
while hWndTemp <> 0 do begin
iLenText := GetWindowText(hWndTemp, cTitletemp, 255);
sTitleTemp := cTitletemp;
sTitleTemp := UpperCase(copy( sTitleTemp, 1, iLenText));
partialTitle := UpperCase(partialTitle);
if pos( partialTitle, sTitleTemp ) <> 0 then Break;
hWndTemp := GetWindow(hWndTemp, GW_HWNDNEXT);
end;
result := hWndTemp;
end;
Beispiel:
Winword ist geöffnet mit irgendeinem Dokument. Das Fenster hat z.B. gerade den Titel "Dokument3 - Microsoft Word".
Das Word-Fenster trägt neben dem Titel des gerade geöffneten Dokuments
immer auch den Textzusatz "Microsoft Word".
Du kannst also einfach mit
Code:
if FindWindowEx('Microsoft Word')<>0 then showmessage('Hi, Winword. Nice to meet you.')
else Showmessage('nix los hier');
feststellen, ob gerade irgendeine Instanz von Winword aktiv ist.
Entsprechend funktioniert das auch mit dem Adobe Reader, Mozilla Firefox, usw.