Einzelnen Beitrag anzeigen

SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 

Re: WindowHandle über den Programmnamen herausfinden?

  Alt 11. Jul 2008, 13:05
wie muss dass dann quellcodemäßig aussehen?

kann man diese funktion nicht irgendwie so umschreiben dass sie nicht mehr nach captions des windows sucht, sondern nach buttoncaptions im window?
Delphi-Quellcode:
function GetProcessHandleFromID(ID: DWORD): THandle;
begin
  result := OpenProcess(SYNCHRONIZE, False, ID);
  CloseHandle(result);
end;

function MyFindWindow(ClassName, WindowTitle: 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
    // Fenster Titel, Klassennamen ermitteln
    GetWindowText(NextHandle, WinTitle, SizeOf(WinTitle));
    GetClassName(NextHandle, WinClass, SizeOf(WinClass));
    // Überprüfung, ob Anfang der Strings übereinstimmen

    if (Copy(WinTitle, 1, Length(WindowTitle)) = WindowTitle) and
    (Copy(WinClass, 1, Length(ClassName)) = ClassName) then
    begin
      // Fenster gefunden, abbrechen
      Result := NextHandle;
      Break;
    end
    else
      NextHandle := GetWindow(NextHandle, GW_HWNDNEXT); // nächstes Fenster ermitteln
  end;
end;
Marco Tröger
  Mit Zitat antworten Zitat