Einzelnen Beitrag anzeigen

ASM

Registriert seit: 16. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Wie findet man Fenster, deren Namen man nicht genau kennt?

  Alt 14. Sep 2011, 12:27
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.
  Mit Zitat antworten Zitat