AGB  ·  Datenschutz  ·  Impressum  







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

SendMessage - Button Click

Ein Thema von -187- · begonnen am 9. Feb 2011 · letzter Beitrag vom 10. Feb 2011
Antwort Antwort
Seite 1 von 2  1 2      
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#1

SendMessage - Button Click

  Alt 9. Feb 2011, 00:11
Moin, ich versuche einen Mausklick auf eine Webbrowser Komponente zu erzeugen sodass ich ein Object auf der Website anklicken könnte, jedoch klappt das nicht. Wenn ich das selbe mit nem Memo versuche dann klappt es. Wieso klappt das nicht mit dem WebBrowser ?

Bitte fragt nicht warum und wieso ich sowas versuche Es ist nur spielerei und ich wunder mich warum das nicht klappt..

Code:
var
  Pt: TPoint;
begin
  Pt.X:=200;
  Pt.Y:=300;
  Pt:=ClientToScreen(Pt);
  SendMessage(WebBrowser1.Handle,WM_RBUTTONDOWN,Pt.X,Pt.Y);
  SendMessage(WebBrowser1.Handle,WM_RBUTTONUP,Pt.X,Pt.Y);
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#2

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 09:11
Hmm verdammt, mit jeder anderen Komponente gehts (Button, Memo, Panel etc..)

Hat vielleicht jemand einen anderen Ansatz um einen Klick auf den Webbrowser zu simulieren. Das Problem ist das ich einen Button auf einer Website kicken möchte. (Ich weiss das es andere sinnvollere Möglichkeiten gibt jedoch muss es doch möglich sein diesen simplen Klick zu simulieren

Mit folgenden Code klappt das auch aber nur im aktiven Fenster... Wenn ich jetzt den Klick auf eine nicht sichtbare Komponente simulieren will kann ich ja nur übers Handle gehen..


Code:
  Point.X:=Panel1.Left+(Panel1.Width div 2);
  Point.Y:=Panel1.Top+(Panel1.Height div 2);
  Point:=ClientToScreen(Point);
  SetCursorPos(Point.X,Point.Y);
  //Perform Left Click
  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
  mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 09:20
Hier im Forum suchenTWebbrowser Click
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 11:18
Zitat:
Pt:=ClientToScreen(Pt);
WM_RBUTTONDOWN erwartet eine relative Position und keine Absolute.

Das es mit dem Memo klappte war dann wohl eher nur Zufall ... also wenn du es da auch mit den Absoluten Werten versucht hattest.
$2B or not $2B
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#5

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 15:37
Hmm was meinst du mit relativen Angaben ? Meinst du das die Abstände vom Form Rand gemessen werden sollten ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 15:38
Genau das war gemeint.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 16:22
Fast ... die Abstände gemessen von der oberen-linken Ecke des Controls, an welches man diese Message schickt.

mouse_event sendet es an das "aktive" Control, in Desktopkoordinaten.

ClientToScreen rechnet die Koordinaten auf die Desktopkoordinaten um, in Bezug auf Top/Left derKomponente, in welcher die Funktion aufgerufen wird (Self.ClientToScreen = die Form).

WebBrowser1.ScreenToClient rechnet Desktopkoordinaten in relativer Koordinaten für WebBrowser1 um.
$2B or not $2B

Geändert von himitsu ( 9. Feb 2011 um 16:26 Uhr)
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#8

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 20:09
Code:
var
  Pt: TPoint;
begin
  Pt.X:=200;
  Pt.Y:=300;
  Pt:=ClientToScreen(Pt);
  PostMessage(WebBrowser1.Handle,WM_LBUTTONDOWN,Pt.X,Pt.Y);
  PostMessage(WebBrowser1.Handle,WM_LBUTTONUP,Pt.X,Pt.Y);
  SetCursorPos(Pt.X,Pt.Y);
end;
Ich habe mir mit Zeile 9 jeweils anzeigen lassen wo mein klick ausgeführt wird. Wenn du mir jetzt sagst das WM_LBUTTONDOWN relative Koordinaten verwendet und SetCursorPos absolute Koordinaten verwendet dann wäre einiges klar. Ich wüsste aber sonst nicht wie man den klick genau ausloten kann :/
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 20:17
TWebBrowser bietet auch die Möglichkeit, quasi wie im JavaScript, über dessen DOM auf den Button zuzugreifen und .click direkt auszuführen.
Wie das jetzt genau geht, weiß ich grad nicht mehr, aber wenn man mal sucht, wie man z.B. eine Seite direkt in den TWebBrowser läd, oder wie man darüber auf (HTML)Inhalte von Edits/DIVs zugreift, dann sollte der Rest einfach zu lösen sein.
$2B or not $2B
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#10

AW: SendMessage - Button Click

  Alt 9. Feb 2011, 20:56
Code:
Ich habe mir mit Zeile 9 jeweils anzeigen lassen wo mein klick ausgeführt wird. Wenn du mir jetzt sagst das WM_LBUTTONDOWN relative Koordinaten verwendet und SetCursorPos absolute Koordinaten verwendet dann wäre einiges klar. Ich wüsste aber sonst nicht wie man den klick genau ausloten kann :/

..Ist das denn jetzt so ? Und hättest du einen Tipp wie man das ausloten kann ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:04 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