Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: ProgrammFenster abfangen?!

  Alt 28. Jul 2009, 10:38
Ich würde mit Greatis WinDowse nachgucken, was an dem Fenster eindeutig ist (es wiedererkennbar macht) und dann per FindWindow den Button suchen und dann WM_LBUTTONDOWN und WM_LBUTTONUP posten.
So hab ich das mal gemacht.

Hier mal der Code von damals:
Delphi-Quellcode:
var
   Handle,
   Parent : HWND;
   buffer : array[0..255] of char;
   Button : Integer;
begin
   Handle:=FindWindow(nil,PChar('Total Commander'));
   if (Handle<>0) then
   begin
      Handle:=FindWindowEx(Handle,0,nil,nil);
      Handle:=FindWindowEx(Handle,0,nil,PChar('NagPage'));
      Parent:=FindWindowEx(Handle,0,nil,nil);
      Handle:=FindWindowEx(Parent,0,Pchar('TPanel'),nil);
      GetWindowText(Handle,buffer,254);
      if (TryStrToInt(buffer, Button)) then
      begin
         Handle:=FindWindowEx(Parent,0,nil,Pchar('&'+IntToStr(Button)));
         PostMessage(Handle,WM_LBUTTONDOWN,0,0);
         PostMessage(Handle,WM_LBUTTONUP,0,0);
         Self.Caption:=IntToStr(Handle);
         Application.Terminate;
      end;
  end;
end;
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat