![]() |
Mausklick simulieren funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich versuche, bei Zone Alarm die Sicherheitsabfrage per Fensterhandle automatisch zu beantworten. (ist für eine Demo wie unsicher Windows ist dank der FensterN) Bei der Windows Firewall klappt dies auch ohne anstand, aber bei ZoneAlarm komme ich über SetFocus nicht hinaus, d.h. der Button "Zulassen" wird zwar focussiert, aber er klickt sich nicht :-( Hier der Code (vorwiegend WinSpy generiert):
Delphi-Quellcode:
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var i: Word; hChild: HWND; begin hChild := 0; Result := 0; ChildNr := ChildNr - 1; for i := 0 to ChildNr do begin hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil); if hChild = 0 then Exit; Result := hChild; end; end;
Delphi-Quellcode:
Im Anhang ist noch ein Screenshot vom ZA-Fenster und von WinSpy.
procedure TForm1.Button7Click(Sender: TObject);
var wnd: HWND; begin wnd := FindWindow('#32770','ZoneAlarm-Sicherheitswarnung'); wnd := FindWindowEx2(wnd,'ZaButton', 3); if wnd <> 0 then begin //ShowMessage('Window found. Handle: ' + IntToStr(wnd)); SendMessage(wnd, WM_SETFOCUS, 0, 0); PostMessage(wnd, WM_LButtonDown, MK_LBUTTON,0 ); PostMessage(wnd, WM_LButtonUp, 0, 0); } end; |
Re: Mausklick simulieren funktioniert nicht
fehlen da nicht die koordinaten für den klick?
//bei der windows firewall funktioniert der gleiche code(bis eben auf das andere handle)? |
Re: Mausklick simulieren funktioniert nicht
Zitat:
ich könnts ja mal mit koordinaten probieren wie kann ich die koordinaten für den button ermitteln mittels des handles? |
Re: Mausklick simulieren funktioniert nicht
Hallo.
Das ist ja interessant. Könntest du mal den Code posten, mit dem man quasi ein automatisches Klicken der WindowsFirewall erstellen kann hier posten. Das finde ich nämlich total spannend und würde mich freuen, wenn du meinen Wunsch erfüllen würdest. |
Re: Mausklick simulieren funktioniert nicht
Zitat:
Folgendes geht z.b. für den Startbutton: PostMessage(FindWindowEx(FindWindow('Shell_TrayWnd ', nil),0, 'Button', nil), WM_LBUTTONDOWN, MK_LBUTTON, 0); PostMessage(FindWindowEx(FindWindow('Shell_TrayWnd ', nil),0, 'Button', nil), WM_LBUTTONUP, MK_LBUTTON, 0); Fängt ZA die Windows Messages ab oder was kann das sein? Welche Alternativen habe ich? Mit
Delphi-Quellcode:
gehts nämlich auch nicht :-(
SetCursorPos(x, y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); [edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit] |
Re: Mausklick simulieren funktioniert nicht
Du fragst, ob Zone-Alarm die Messages abfängt. Ich hoffe doch! Was wäre das für eine Firewall, wenn jedes bösartige Programm sich selbst so einfach Zugang zum Internet beschaffen könnte!
|
Re: Mausklick simulieren funktioniert nicht
Zitat:
Aber ob das nun so ist mit abfangen oder nicht wissen wohl am besten die WindowsAPI experten ;) |
Re: Mausklick simulieren funktioniert nicht
Abend!
Zitat:
Delphi-Quellcode:
Grüßle!
keybd_event(VK_SPACE, 0, 0, 0);
keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0); |
Re: Mausklick simulieren funktioniert nicht
Zitat:
das seltsame: das event wird zwar ausgeführt, aber wohl leider nur auf meinen eigenen button in der delphi app der dann flackert wobei das in dem fall nichts mit ZA zu tun hat, bei anderen handles passiert das gleiche irgendwas stimmt da an deinem code nicht - oder reicht mein setfocus nicht, um die Tastatur auf den jeweiligen Button umzulenken? |
Re: Mausklick simulieren funktioniert nicht
Ähm, der Code tut das gleiche, als das Du die Leertaste drücken würdest.
Warum flackert Dein Button??? Hat der den Fokus, bzw. wie oft rufst Du den Code auf? Mit diesen Makros steure ich immer andere Programme, normal klappt das. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz