Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Button in TWebbrowser drücken! (https://www.delphipraxis.net/76250-button-twebbrowser-druecken.html)

la.reunion 31. Aug 2006 22:33


Button in TWebbrowser drücken!
 
Nabend,

Ich habe scho im Forum gesucht aber nichts zu meinem Problem gefunden. Um mal kurz meine Situation zu erklären: Ich bin 92 Jahre alt .. Nein spaß bei Seite :-D
Ich habe 2 Buttons ein Edit und einen TWebbrowser.
In dem Edit gebe ich eine URL ein navigiere damit den TWebbrowser(mit dem ersten button) und mit dem zweiten Button wird bzw. soll ausgelöst werden das in dem TWebbrowser 3-Mal die Taste Tab gedrückt wird und dann enter.

Nur funkrioniert das nicht wenn ich Tab drücken lasse wird dies nur in meiner Programm-Oberfläche ausgeführt, nicht im TWebbrowser. Dazu habe ich dann folgendes benutzt, das aber auch nicht funktioniert k.A warum:
Delphi-Quellcode:
postMessage(WebBrowser1.Handle,WM_KEYDOWN,vk_tab,0);
Ist da was falsch dran oder warum macht er das nicht?

Vlt hab ihr ja auch einen anderen Lösungsvorschlag, wäre euch sehr dankbar.

Im Prinzip will ich einen Button in einem TWebbrowser drücken muss dies aber über diesen Umweg machen, da ich schon sämtlichen Möglichkeiten ausprobiert hab die leider nicht funktionieren, wenn ich mich eines besseren belehrern könnt bitte...

Lg La.Reunion
PS:. Danke!

toms 1. Sep 2006 07:50

Re: Button in TWebbrowser drücken!
 
Hallo

Vielleicht koenntest du den relevanten (HTML) Source Code posten?

la.reunion 1. Sep 2006 10:23

Re: Button in TWebbrowser drücken!
 
Delphi-Quellcode:
<div id="068be3997902ffa0cf91c6b411a0bcb8d" style="text-align: center;">
               <button onclick="javascript:RapidSafePSC('3f76h6m451vg=4g161vou4u70&t=068be3997902ffa0cf91c6b411a
0bcb8d&d=068be3997902ffa0cf91c6b411a0bcb8&p=1','068be3997902ffa0cf91c6b411a0bcb8d');">Premium</button>
               <button onclick="javascript:RapidSafePSC('3f76h6m451vg=4g161vou4u70&t=068be3997902ffa0cf91c6b411a0bcb8d
&d=068be3997902ffa0cf91c6b411a0bcb8&p=0','068be3997902ffa0cf91c6b411a0bcb8d');">Free</button>


               <span style="font-size: x-small;">0:0 clicks</span>
SO das müsste der wichtige teil sein


HAbe das auch damit versucht, ich weiß aber nicht was ich da eintragen soll
Delphi-Quellcode:
WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).click;
[edit=Admin]wg. Darstellungsfehlern neu in Cache eingetragen Mfg, Daniel[/edit]

Ydobon 1. Sep 2006 14:22

Re: Button in TWebbrowser drücken!
 
Klappt es so vielleicht?
Delphi-Quellcode:
var divb: IHTMLElement;
begin
  divb:=(WebBrowser1.Document as IHTMLDocument3).getElementById('068be3997902ffa0cf91c6b411a0bcb8d');
  ((divb.children as IHTMLElementCollection).item(0, 0) as IHTMLElement).click;
end;

Cyberbob 1. Sep 2006 14:43

Re: Button in TWebbrowser drücken!
 
Da gibt es aber noch 2 Probleme!
1.: die ID oder der Name ändert sich jedesmal.
2.: RapidTec (also RapidShare, RapidForum, etc.) haben es in ihren AGB verboten, solche Programme zu nutzen, die die abläufe der Seite automatisieren.

Hatten wir auch schonmal hier irgendwo im forum!

Balu der Bär 1. Sep 2006 14:45

Re: Button in TWebbrowser drücken!
 
Zitat:

2.: RapidTec (also RapidShare, RapidForum, etc.) haben es in ihren AGB verboten, solche Programme zu nutzen, die die abläufe der Seite automatisieren.
Falsch. Der Dienst den la.reunion automatisieren will hat nichts mit Rapidshare zu tun. Es handelt sich bei diesem Fall um Rapidsafe, ein Dienst der Rapidshare-Links verschlüsselt.

Ydobon 1. Sep 2006 14:57

Re: Button in TWebbrowser drücken!
 
Ich hatte es mir aber auch so ähnlich gedacht, warum sollte man sonst eine GUID als ID nehmen.
Gegen den Punkt zwei würde sich nichts machen lassen. Punkt eins wäre, wenn die Seite nicht immer total umgebaut wird, aber wenigstens etwas lösbar, elementFromPoint, eine Kollektion nur der Buttons usw.

la.reunion 1. Sep 2006 16:43

Re: Button in TWebbrowser drücken!
 
Danke schonmal für eure Antowrten und Überlegungen.

ich tests mal vlt find ich ja au noch was raus.


UND was ist wwenn man es durch das "tastendrücken" automatisiert?

la.reunion 1. Sep 2006 17:59

Re: Button in TWebbrowser drücken!
 
hier mal nochn teil mit dem ich es versucht hab:

Delphi-Quellcode:
procedure SubmitWebForm(webform:OleVariant);
var
   i : Integer;
   formitem : OleVariant;
   itemtype, itemname : string;
begin
   // Schleife über alle Items eines WebFormulars
   For i:= webform.Length-1 downto 0 do
   begin
      formitem := webform.Item(i);
      itemtype := UpperCase(formitem.Type);
      itemname := UpperCase(formitem.Name);

      // if it's a submit button: click it
      if itemtype = 'SUBMIT' then
      begin
         formitem.Click;
         Exit;
      end
      else if (itemtype='BUTTON') and (itemname='Free') then
      begin
         formitem.Click;
         Exit;
      end
   end;

   // try default submit Method
   webform.submit;
end;






procedure TForm1.Button2Click(Sender: TObject);
begin
SubmitWebForm(WebBrowser1.OleObject.document.forms.Item(0));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate(Edit1.TExt);
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 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