Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Button fremder Anwendungen drücken

  Alt 19. Dez 2006, 09:54
...also, hier vielleicht doch mal ein Mini-Beispiel das zeigt, wie absolut einfach das auch mit FindWindowEx sein kann.

Angenommen Du möchtest die Pie-Button auf deinem Taschenrechner-Prog ferngesteuert niederdrücken, dann reicht nämlich schon ungefähr folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var RechnerHwnd, PiTasteHwnd : THandle;
begin
  RechnerHwnd := FindWindow('SciCalc','Rechner');
  if RechnerHwnd > 0 then
    PiTasteHwnd := FindWindowEx(RechnerHwnd,0,'Button','Pi');

  if (RechnerHwnd > 0) and (PiTasteHwnd > 0)
  then PostMessage(PiTasteHwnd,BM_Click,0,0)
  else showMessage('..klappte nicht!');
end;
Vorher schaust Du dir aber noch mittels Spy++ (=SpyXX) die einfache Control-Struktur des Progs an, ...und siehst dabei zufällig, dass nicht nur der Taschenrechner schon einen sinnvollen Namen (='Rechner') hat, sondern dass ’günstigerweise’ auch die Buttons darauf ihren Funktionen entsprechend benannt sind. Außerdem kannst du auch nur mittels eines solchen Tools die ebenfalls noch benötigten Klassennamen von Prog u. Button herausbekommen.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat