Autor Beitrag
admiralkirk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: 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:

ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
ShellExecute(Application.Handle, nil , 'http://google.de/'nilnil, SW_SHOWNORMAL);
sleep(2500);
Keybd_Event (VK_TAB, 100);
sleep(20);
Keybd_Event (VK_TAB, 100);
sleep(100);
Keybd_Event (VK_RETURN, 100);
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 ...

ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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');                //btnI ist der Name vom Button aus dem Quelltext
  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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: So 02.11.08 21:34 
Damit kannste den Button klicken.
ausblenden Delphi-Quelltext
1:
WebBrowser1.OleObject.document.forms.item(0).elements.item('btnI').click;					
admiralkirk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mo 03.11.08 19:16 
user profile iconBob Murphy hat folgendes geschrieben Zum zitierten Posting springen:
Damit kannste den Button klicken.
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mo 03.11.08 21:50 
Kann denn keiner dieses einfache problem lösen ?

Bitte postet mir einen kompletten code mit dem command:

user profile iconBob Murphy hat folgendes geschrieben Zum zitierten Posting springen:
Damit kannste den Button klicken.
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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
ausblenden 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.

ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mo 03.11.08 23:13 
vielen dank endlich einer der mir hilft xD
werds gleich mal ausprobieren
admiralkirk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

XP, Ubuntu
Delphi 7 SE, Delphi 2007
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: 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

ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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]user defined image[/URL][url=g.imageshack.us/thpix.php]user defined image[/URL]
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Di 04.11.08 00:24 
Mal ne blöde Frage:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Di 04.11.08 00:26 
ne

//edit
über die form ganz normal
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: 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