AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mausklick simulieren funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Mausklick simulieren funktioniert nicht

Ein Thema von snapman · begonnen am 28. Jan 2007 · letzter Beitrag vom 26. Mär 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
snapman
(Gast)

n/a Beiträge
 
#1

Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 11:22
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:
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;
Im Anhang ist noch ein Screenshot vom ZA-Fenster und von WinSpy.
Miniaturansicht angehängter Grafiken
scr_422.jpg  
  Mit Zitat antworten Zitat
jmd anders

Registriert seit: 13. Mai 2004
84 Beiträge
 
#2

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 11:33
fehlen da nicht die koordinaten für den klick?

//bei der windows firewall funktioniert der gleiche code(bis eben auf das andere handle)?
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#3

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 11:39
Zitat von jmd anders:
fehlen da nicht die koordinaten für den klick?

//bei der windows firewall funktioniert der gleiche code(bis eben
auf das andere handle)?
ja da funktionierts (nur das handle ist getaucht)
ich könnts ja mal mit koordinaten probieren

wie kann ich die koordinaten für den button ermitteln mittels des handles?
  Mit Zitat antworten Zitat
sebjensen

Registriert seit: 8. Dez 2005
Ort: Kiel
62 Beiträge
 
#4

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 12:02
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.
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#5

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 17:09
Zitat von jmd anders:
fehlen da nicht die koordinaten für den klick?
Also Koordinaten werden auf keinen Fall gebraucht.
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:
SetCursorPos(x, y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
gehts nämlich auch nicht

[edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 17:54
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!
Sascha
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#7

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 18:20
Zitat von Sascha L:
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!
Naja man kann auch versteckt den Internet Explorer starten, der hat eh "immer" Zugriff.
Aber ob das nun so ist mit abfangen oder nicht wissen wohl am besten die WindowsAPI experten
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#8

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 21:57
Abend!

Zitat von snapman:
der Button "Zulassen" wird zwar focussiert, aber er klickt sich nicht
Zwar keine Ahnung hab obs klapp und kein ZA hab, aber spontan auf die Idee komme, wenn der Button schon den Fokus hat, die Leertaste zu drücken:

Delphi-Quellcode:
keybd_event(VK_SPACE, 0, 0, 0);
keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
Grüßle!
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
snapman
(Gast)

n/a Beiträge
 
#9

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 22:01
Zitat von Sunlight7:
Abend!

Zitat von snapman:
der Button "Zulassen" wird zwar focussiert, aber er klickt sich nicht
Zwar keine Ahnung hab obs klapp und kein ZA hab, aber spontan auf die Idee komme, wenn der Button schon den Fokus hat, die Leertaste zu drücken:

Delphi-Quellcode:
keybd_event(VK_SPACE, 0, 0, 0);
keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
Grüßle!
danke, aber auch das funktioniert leider nicht
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?
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#10

Re: Mausklick simulieren funktioniert nicht

  Alt 28. Jan 2007, 22:18
Ä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.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 06:54 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