![]() |
[Gelöst] Atomatischer klick auf TWebBrowser geht nicht
hallo zusammen,
ich habe das problem das ich einen atomatischen Klick (mouse_event(MouseEventF_leftDown,x,y,0,0);) auf eine TWebBrowser Komponente Klicken möchte, er aber nicht klickt. Zum Ablauf: ich lese koordinaten für den klick ein die er nach und nach klicken soll. das funktioniert auf dem desktop ohne weitere probleme ... aber wenn ich in dem browser klicken möchte macht er nix... wenn ich aber manuel im browser klicke macht er alles einwandfrei... hier einmal der entsprechende code...
Delphi-Quellcode:
procedure TForm1.Button10Click(Sender: TObject);
var n,m,x,y : Integer; I: Integer; begin zaehler := 0; //Globale Variable while zaehler < listbox3.count - 1 do begin if webbrowser1.busy <> true then begin for I := 0 to Listbox1.Count - 1 do begin n := StrToInt(listbox1.items[i]); //X Koordinaten m := StrToInt(listbox2.items[i]); //Y Koordinaten if (n = 0) and (m = 0) then begin sleep(200); entertext(nick); end; if (n = 9999) and (m = 9999) then begin key := listbox3.Items[zaehler]; sleep(200); EnterText(key); end; if (m <> 0) and (m <> 9999) and (n <> 0) and (n <> 9999) then begin setCursorPos(m,n); sleep(100); mouse_event(MouseEventF_leftDown,x,y,0,0); sleep(500); mouse_event(MouseEventF_leftUp,x,y,0,0); sleep(100); //Sleeps sind notwending aber nicht in der Größe ... nur zu testzwecken end; end; sleep(100); zaehler := zaehler+1; end; end; end; Zum Zweck: das ganze ist für die Firma da wir mit einer datenbank arbeiten die webgestützt ist und ich die ganzen einträge in exel hab ^^ ich lese sie vorher in listbox3 ein und stecke sie nach und nach in die im browser vorgesehenen felder ein... ich hoffe ihr könnt mir helfen lg 5etH |
Re: Atomatischer klick auf TWebBrowser geht nicht
Besser über das DOM gehen. Bzw. Antwort direkt an Skript schicken (POST/GET)
|
Re: Atomatischer klick auf TWebBrowser geht nicht
sry bin ja nicht mit delphi geboren wie andere ;) ... ^^ wie soll ich das denn in etwa anstellen
|
Re: Atomatischer klick auf TWebBrowser geht nicht
Das hat primär nichts mit Delphi zu tun. Die geladene Seite im Browser kann über das Document Object Model angesprochen werden. So kann man gezielt auf Eingabefelder o.ä zugreifen und deren Inhalt manipulieren
|
Re: Atomatischer klick auf TWebBrowser geht nicht
das problem ist wir haben verschiedene kunden die die daten wollen und alles benutzen ja andere seiten daher müsste ich das programm immer umschreiben ... geht das nicht anders ?
|
Re: Atomatischer klick auf TWebBrowser geht nicht
Hä ich dachte es geht um eine Webanwendungen. Jetzt sind es auf einmal verschiedene. Seit ihr Betreiber der Webanwendung? Dann würde ich eine alternative Schnittstelle schaffen. Sonst würde ich die Finger davon lassen
|
Re: Atomatischer klick auf TWebBrowser geht nicht
naja das problem ist das diese datenbank für marketing zwecke ist und die webanwendung an sich die gleiche ist aber nicht jeder die aktuelle version aus kostengründen hat ... und manche felder sind dann nicht gleich benannt
|
Re: Atomatischer klick auf TWebBrowser geht nicht
Wie gesagt ich würde eine Schnittstelle für den Datenaustausch schaffen
|
Re: Atomatischer klick auf TWebBrowser geht nicht
ja aber wieso lässt sie auf dem webbrowser kein klickevent ausführen ? weil ich könnte auch mit copy paste arbeiten aber ich krieg ja nichtmal einen klick zu stande um in das feld zu kommen ... wenn ich den Klick zu stande kriege brauch ich keine schnittstelle oder ist das einfach nicht möglich ?
EDIT: ich habe rausgefunden das wärend er die klicks durchführt er die BweBrowser komponente einfriert und sie deswegen nichts machen kann auber auch ein "refresh;" behebt das nicht, aber vieleicht kann man mit dem punkt weiter machen ... |
Re: Atomatischer klick auf TWebBrowser geht nicht
Natürlich kannst du deinen Porsche auch mit einem Fahrrad ziehen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 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-2025 by Thomas Breitkreuz