Autor |
Beitrag |
admiralkirk
      
Beiträge: 28
|
Verfasst: So 02.11.08 16:37
Ich möchte auf der Seite www.google.de den "Auf gut Glück" Button anklicken.
Dazu öffne ich einfach mit ShellExecute den browser unter www.google.de
Was ich ausprobiert habe:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| unit Unit3;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellApi, StdCtrls, ImgList, ExtCtrls;
type TForm3 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure XPColorMap1ColorChange(Sender: TObject); private public end;
var Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject); begin ShellExecute(Application.Handle, nil , 'http://google.de/', nil, nil, SW_SHOWNORMAL); sleep(2500); Keybd_Event (VK_TAB, 1, 0, 0); sleep(20); Keybd_Event (VK_TAB, 1, 0, 0); sleep(100); Keybd_Event (VK_RETURN, 1, 0, 0); sleep(1500); close(); end; end. |
Funktioniert super mit Mozilla Firefox und auch mit IE. Aber nicht mit einem Script da die Anzahl der zu drückenden Tabs unterschiedlich sind ...
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| unit Unit4;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellApi, StdCtrls, ImgList, SHDocVw, ActiveX, ComObj, ExtCtrls, mshtml;
type TForm4 = class(TForm) Button1: TButton; Image1: TImage; procedure Button1Click(Sender: TObject); procedure Image1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm4.Button2Click(Sender: TObject); begin var vDoc, vForm, vElem: OleVariant; begin WebBrowser1.Navigate('http://google.de/'); repeat Application.ProcessMessages; until WebBrowser1.ReadyState >= READYSTATE_COMPLETE; vDoc := WebBrowser1.OleObject.document; vElem := vDoc.getElementById('btnI'); if VarIsNull(vElem) then ShowMessage('Element "btnI" not found') else vElem.click; end; procedure TForm4.Image1Click(Sender: TObject); begin
end;
end. |
Funktioniert nich da ein paar Befehle, wie button2Click, var, WebBrowser1.Navigate rot unterstrichen sind !
Den Code habe ich GEFUNDEN ! Nicht meiner ...
Hier also meine frage, funktioniert der 2. Code indem ich etwas ändere oder gibt es eine andere Möglichkeit den Button direkt anzuklicken ohne Maussteurung etc was bei jedem PC bzw Browser unterschiedlich sein kann ?
Danke im Vorraus
mfg
AdmiralKirk
|
|
Bob Murphy
      
Beiträge: 91
XP, Ubuntu
Delphi 7 SE, Delphi 2007
|
Verfasst: So 02.11.08 21:34
Damit kannste den Button klicken.
Delphi-Quelltext 1:
| WebBrowser1.OleObject.document.forms.item(0).elements.item('btnI').click; |
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Mo 03.11.08 19:16
Bob Murphy hat folgendes geschrieben : | Damit kannste den Button klicken.
Delphi-Quelltext 1:
| WebBrowser1.OleObject.document.forms.item(0).elements.item('btnI').click; | |
Könntest du mir einen vollständigen Quelltext posten.
Das problem bei mir ist, dass ich diesen Befehl schon öfters gesehen habe und ich nicht genau weiss was in uses und in die deklaration kommt, damit es einwandfrei funktioniert.
Danke im Vorraus
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Mo 03.11.08 21:50
Kann denn keiner dieses einfache problem lösen ?
Bitte postet mir einen kompletten code mit dem command:
Bob Murphy hat folgendes geschrieben : | Damit kannste den Button klicken.
Delphi-Quelltext 1:
| WebBrowser1.OleObject.document.forms.item(0).elements.item('btnI').click; | |
Da ich nicht weiss was alles drin stehen muss, damit zb die WebBrowser1 funktion oder OleObject funktioniert
Danke im Vorraus !
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 03.11.08 21:57
Du brauchst die entsprechende Komponente, eine TWebbrowser, auf deinem Formular
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Mo 03.11.08 22:06
Ich habe das schon in so vielen delphi foren gepostet und keine antwort auf meine eigentliche frage bekommen ...
Ich kenne mich mit delphi noch nicht so gut aus und frage ob ein wissender mir kurz ein kompletten code posten kann ...
der dürfte ja net allzu groß sein ...
von Unit# ... bis end;
Danke, .. hoffentlich
mfg
admiralkirk
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 03.11.08 22:47
Das IST der komplette Code.
Du brauchst nun nur noch einen TWebbrowser und von mir aus 2 Buttons.
Im einen Button schreibst du
Delphi-Quelltext 1:
| Webbrowser1.Navigate('www.google.de'); |
um Google zu öffnen.
Im anderen den Code von oben.
Edit:
Nagut, wenn du meinst, dass es dir weiterhilft:
Aber mehr als Zeilen 31 und 36 muss man nicht selber schreiben.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; WebBrowser1: TWebBrowser; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('www.google.de'); end;
procedure TForm1.Button2Click(Sender: TObject); begin WebBrowser1.OleObject.document.forms.item(0).elements.item('btnI').click; end;
end. |
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Mo 03.11.08 23:13
vielen dank endlich einer der mir hilft xD
werds gleich mal ausprobieren
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Mo 03.11.08 23:17
mmh ich habe jez genau alles gemacht wie du es geschrieben hast, das programm zeigt keine fehlermeldung oder ähnliches.
startet ganz normal, aber wenn ich auf die buttons klicke passiert nichts, ist das normal ?
Müsste google in dem Webbrowser fenster auf der form angezeigt werden, im normalen oder garnicht?
Sieht man was das programm im browser macht ?
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 03.11.08 23:30
Hast du verstanden, was der Code macht?
Man klickt auf den ersten Button -> Google wird im Programm angezeigt -> man tippt nen Suchbegriff ein -> klickt auf Button 2
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Bob Murphy
      
Beiträge: 91
XP, Ubuntu
Delphi 7 SE, Delphi 2007
|
Verfasst: Mo 03.11.08 23:36
hast du den webbrowser auch auf einer sichtbaren größe gestellt? zb 500 x 500
und ja google wird dann im webbrowser (der auf der form) angezeigt
edit//
hast du den internet explorer von windows drauf?
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Mo 03.11.08 23:48
Ich habe auf meinem pc IE 7 und Mozilla Firefox installiert
Ich habe jetzt auf meiner form den Webbrowser um die 800x800 groß gemacht.
Alles was ich sehe wenn ich auf den navigate button klicke ist weiss, es verändert sich nichts
|
|
Bob Murphy
      
Beiträge: 91
XP, Ubuntu
Delphi 7 SE, Delphi 2007
|
Verfasst: Mo 03.11.08 23:55
je nach internetverbindung kann es ein wenig dauern bis du google angezeigt bekommst.
hast du vielleicht eine firewall die dein programm den zugang zum internet verweigert?
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mo 03.11.08 23:56
Kommst du mit dem IE7 normal ins Internet?
Hast du eine Firewall?
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Di 04.11.08 00:00
mmh ich habe zonealarm
ich habe mehr als 20 sec gewartet zum aufbauen der seite
ich schau mal wegen der firewall
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Di 04.11.08 00:10
Egal was ich mache es wird nur weiss angezeigt.
Firewall ist aus + programm zugelassen.
Habe 1 min gewartet nichts tut sich
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| unit Unit8;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls;
type TForm8 = class(TForm) Button1: TButton; Button2: TButton; WebBrowser1: TWebBrowser; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private public end;
var Form8: TForm8;
implementation
{$R *.dfm}
procedure TForm8.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('www.google.de'); end;
procedure TForm8.Button2Click(Sender: TObject); begin WebBrowser1.OleObject.document.forms.item(0).elements.item('btnI').click; end;
procedure TForm8.Button3Click(Sender: TObject); begin close; end;
end. |
//Meine Form
[url= img385.imageshack.us...?image=form8kd8.jpg] [/URL][url= g.imageshack.us/thpix.php] [/URL]
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Di 04.11.08 00:24
Mal ne blöde Frage:
Delphi-Quelltext 1:
| procedure TForm8.Button1Click(Sender: TObject); |
Wie hast du diese Zeile da reinbekommen? Hast du sie einfach per Copy & Paste eingefügt?
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Di 04.11.08 00:26
ne
//edit
über die form ganz normal
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Di 04.11.08 00:28
Lad mal bitte das ganze Projekt (ohne Exe!) als Zip Datei hier hoch..
da stimmt doch was nicht.
Edit: Wieso heißt das Ding eigentlich schon Form8? Bist du sicher, dass du mit dem richtigen Formular arbeitest?
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
admiralkirk 
      
Beiträge: 28
|
Verfasst: Di 04.11.08 00:35
Wooho ich habs nach 2 tagen xD endlich
Vielen danke für deine bemühungen und deine Ausdaur mit mir
Tausend dank.
Der fehler war einfach, das es verschiedene Delphi version gibt.
Mit OleVariant geht es perfekt
hier der link
www.delphipraxis.net/topic68127.html
|
|