AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ProgrammFenster abfangen?!

Ein Thema von BongoTrommler · begonnen am 28. Jul 2009 · letzter Beitrag vom 28. Jul 2009
Antwort Antwort
BongoTrommler

Registriert seit: 12. Nov 2008
21 Beiträge
 
#1

ProgrammFenster abfangen?!

  Alt 28. Jul 2009, 10:27
Tachchen;

hab folgendes Probem:

Ich starte ein Programm -> Programm läuft, ab und zu öffnet sich im Programm ein Pop-Up, welches man mit einen klick auf den "Enter"-Button schließen kann... Diesen klick will ich nun mit einem Delphi Programm abfangen, praktisch soll Delphi sehen, dass sich das Fenster öffnet und dann den Button klicken ^^

Jemand nen Lösungsvorschlag, oder einfach mit SetmousePos die Position setzen und einen Mausclick simulieren?


Lg
  Mit Zitat antworten Zitat
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz