Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#17

Re: WindowHandle über den Programmnamen herausfinden?

  Alt 13. Jul 2008, 12:41
Das könnte in etwa so aussehen:

Delphi-Quellcode:
function MyFindWindow(MainWinClassName, ButtonCaption: string): integer;
var
  NextHandle: HWND;
  WinTitle, WinClass: array[0..255] of Char;
begin
  Result := 0;
  NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST); // erstes Fenster ermitteln
  while NextHandle > 0 do // falls Fenster gefunden
  begin
    GetClassName(NextHandle, WinClass, SizeOf(WinClass));
    // Überprüfung, ob Anfang der Strings übereinstimmen
    if (Copy(WinClass, 1, Length(MainWinClassName)) = MainWinClassName) then
    begin
      // Fenster gefunden

      // Hier nun nach dem Button suchen mit EnumChildWindows
      ...
      ...
      Falls Button gefunden, abbrechen, sonst weitersuchen ...
       ...

      Result := NextHandle;
      Break;
    end
    else
      NextHandle := GetWindow(NextHandle, GW_HWNDNEXT); // nächstes Fenster ermitteln
  end;
end;
Thomas
  Mit Zitat antworten Zitat