Thema: Delphi Frage zu den Handles

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Frage zu den Handles

  Alt 26. Apr 2005, 20:49
wenn du die exakte fenstercaption wüsstest könntest du mit
FindWindow(nil, 'exakte fenstercaption') arbeiten was dir dann das handle zurück geben würde. so musst du die caption selbst prüfen und alle fenster durchgehen. Entweder mit EnumWindows oder mit FindWindow und "GW_HWNDNEXT". Hier eine Procedure die das macht was du willst:
Delphi-Quellcode:
function GetHandleByCaption(ACaption: String): Cardinal;
var LHandle, LGiveback: Cardinal;
    LPChar: PChar;
begin
  LPChar := StrAlloc(256);
  LGiveback := 0;
  LHandle := FindWindow(nil, nil);
  while (LHandle <> 0) and (LGiveback = 0) do
  begin
    GetWindowText(LHandle, LPChar, 255);
    if RightStr(string(LPChar), length(ACaption)) = ACaption then
      LGiveback := LHandle;
    LHandle := GetWindow(LHandle, GW_HWNDNEXT);
  end;
  StrDispose(LPChar);
  result := LGiveback;
end;
beispielaufruf:
Delphi-Quellcode:
var LHandle: Cardinal;
begin
  LHandle := GetHandleByCaption('Mozilla Thunderbird');
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat