Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fremden Button drücken (https://www.delphipraxis.net/155622-fremden-button-druecken.html)

WizoHulk 1. Nov 2010 11:54

Fremden Button drücken
 
hallo DP's
versuche schon seit geraumer Zeit einen Message zu einer anderen Anwendung zu schiken(realtek HD Audiomanager).
Das Handle habe ich aber irgendwie kann ich die Message nicht rüberschicken.

hier mal mein Code

Delphi-Quellcode:
procedure TForm1.BtnStartClick(Sender: TObject);
var
  LWnd: HWND;
begin
  LWnd := FindWindow('#32770', 'Realtek HD Audio-Manager');

  //LWnd := FindWindowEx(LWnd, 0, '#32770', nil);
  //LWnd := GetDlgItem(LWnd, 65535);
  LWnd := GetDlgItem(LWnd, 1); //Button

  if LWnd <> 0 then
  begin
  sendmessage(LWnd,WM_KEYDOWN,VK_MENU,0);
   //PostKeyExHWND(LWnd, Ord('I'), [ssAlt], False);
  end;
end;

Luckie 1. Nov 2010 12:12

AW: Fremden Button drücken
 
Wie wäre es wenn du einfach die Nachricht BM_CLICK an die Schaltfläche sendest? Davon abgesehen, du sendest zwar die Nachricht WM_KEYDOWN, aber wo lässt du den Button wieder los?

WizoHulk 1. Nov 2010 12:17

AW: Fremden Button drücken
 
boahr, manchmal kann man gar net so dumm denken...
danke schön

WizoHulk 1. Nov 2010 13:02

AW: Fremden Button drücken
 
bei diesem einen button geht es, aber wenn ich das handle vom anderen habe, geht der nicht bei:
Delphi-Quellcode:
LWnd := FindWindowEx(LWnd, 0, '#32770', 'Lautsprecherkonfiguration');
ist das Lwnd auf einmal Null.
Es geht nur bei diesem einen Button...komisch

DeddyH 1. Nov 2010 13:04

AW: Fremden Button drücken
 
Tipp: lad Dir WinSpy herunter und lass das Programm das Handle ermitteln. Das Tool kann Dir auch gleich entsprechenden Quelltext generieren.

WizoHulk 1. Nov 2010 13:09

AW: Fremden Button drücken
 
hab jetzt auch das problem das die vier anzeigen(buttons alle die gleiche controlID haben) und er windowstext auch gleich ist.
ich schätze mal das er deswegen auch nicht weiß wo er drücken soll.
Delphi-Quellcode:
var
  wnd: HWND;
begin
  wnd := FindWindow('#32770', 'Realtek HD Audio-Manager');
  wnd := FindWindowEx(wnd, 0, '#32770', nil);
  wnd := FindWindowEx(wnd, 0, 'Static', 'Lautsprecherausgang');
über x-spy habe ich ja da Handle bekommen...

WizoHulk 1. Nov 2010 13:10

AW: Fremden Button drücken
 
über x-spy habe ich ja da Handle bekommen...

Luckie 1. Nov 2010 13:12

AW: Fremden Button drücken
 
Zitat:

Zitat von WizoHulk (Beitrag 1058935)
hab jetzt auch das problem das die vier anzeigen(buttons alle die gleiche controlID haben) und er windowstext auch gleich ist.

Das kann eigentlich nicht sein, denn irgendwie muss der Programmierer ja die Schaltflächen im Programm auseinander halten.

DeddyH 1. Nov 2010 13:13

AW: Fremden Button drücken
 
Das kommt mir komisch vor. Ist da vielleicht ein FindWindowEx zuviel?

WizoHulk 1. Nov 2010 13:15

AW: Fremden Button drücken
 
ja hmmm. also das Handle ist unterschiedlich seh ich grad
$000E0676 und $002103E8
aber der quellcode greift doch auf die controlID zurück oder nicht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 Uhr.
Seite 1 von 2  1 2      

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