如何用代码实现自动登陆到WEB网页上去啊? ( 积分: 30 )

  • 主题发起人 主题发起人 xywxl
  • 开始时间 开始时间
X

xywxl

Unregistered / Unconfirmed
GUEST, unregistred user!
就是使用程序自动填写入密码,用户名,自动点确定,自动登陆到网站上去,

应该如何实现啊,使用SPY++分析句柄的方法好象不可以,因为整个网页文件是

一个句柄
 
就是使用程序自动填写入密码,用户名,自动点确定,自动登陆到网站上去,

应该如何实现啊,使用SPY++分析句柄的方法好象不可以,因为整个网页文件是

一个句柄
 
用WebBrowser控件的Document对象可以实现,现在没有原代码,你去找一下这方面资料。
 
谁有这方面的资料么,帮忙贴一下啊,谢拉:)
 
刚才做的,完全正确,自己做浏览器
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, ExtCtrls, DBCtrls;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser; //加入一个TWebBrowser控件
Button1: TButton;
Button3: TButton;
Button4: TButton;
Button2: TButton;
Memo1: TMemo;
Timer2: TTimer;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses OleServer; //使用Olevariant类型必须使用的东西
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);//关闭按钮
begin
close;
end;

procedure TForm1.Button3Click(Sender: TObject); //自动提交按钮
var
Myinput : Olevariant;
begin
Myinput := WebBrowser1.OleObject.document.all.item('name',0); //找到登录用户名的输入框
Myinput.value := 'telecom'; //输入用户名
Myinput := WebBrowser1.oleobject.document.all.item('pass',0); //找到登录密码的输入框
Myinput.value := '96588'; //输入密码
//提交操作
Myinput :=WebBrowser1.oleobject.document.all.item('ok',0); //或者用指定表单名称提交
Myinput.Click; //点击操作,对其它对象也可同样操作

end;


procedure TForm1.Button4Click(Sender: TObject); //在单个frames中查找相同属性的对象
//用这个函数,可以看到编辑框 和按钮的Name属性(控件的名称)
var
Count:Integer;
begin
memo1.Text:='';
for Count :=0 to WebBrowser1.OleObject.Document.All.Length -1 do //当前页面中所有对象数量
Begin
if WebBrowser1.OleObject.Document.All.Item(Count).TagName ='TD' then //找出所有属性为TD的对象//
Begin
memo1.Lines.Add('当前网页查找的内容有:');
memo1.Lines.Add(WebBrowser1.OleObject.Document.All.Item(Count).InnerText); //显示找到的对象的文本信息
memo1.Lines.Add('');
memo1.Lines.Add(WebBrowser1.OleObject.Document.All.Item(Count).InnerHtml); //显示找到的对象的HTML源码信息
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject); //打开网页按钮
begin
Form1.WebBrowser1.Navigate('http://www.xjair.com/construct/hbxx_login.asp');
button3.Enabled:=true;
button4.Enabled:=true;

end;

procedure TForm1.FormShow(Sender: TObject); //打开时自动打开网页
begin
// button2.Click;

end;

end.
 
谢谢拉,偶试试:)
 
邮件已发,我就不贴代码了,你贴出来吧,我以前回的帖子里面发过了
 
chenybin给偶的代码,帖一下就结帐拉:)
unit Main;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, OleCtrls, SHDocVw, MSHTML;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure WebBrowser1DownloadComplete(Sender: TObject);
private
{ Private declarations }
FDownComplete : Boolean;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
ovDoc, ovInput, ovTag: OleVariant;
I : Integer;
begin
if not FDownComplete then Application.MessageBox('网页正在下载中,请稍后……', '提示', MB_OK + MB_ICONINFORMATION)
else begin
ovDoc := WebBrowser1.Document;
ovInput := ovDoc.all.tags('INPUT');
for I := 0 to ovInput.length -1 do begin
ovTag := ovInput.item(I);
if (ovTag.Type = 'text') or (ovTag.Type = 'password') then begin
if ovTag.Name = 'uid' then ovTag.Value := 'chenybi';
if ovTag.Name = 'passwd' then ovTag.Value := '******';
end
else if ovTag.Type = 'image' then begin
if ovTag.alt = '登录ChinaRen' then
ovTag.Click;
end;
end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FDownComplete := False;
WebBrowser1.Navigate('http://www.chinaren.com');
end;

procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
begin
FDownComplete := True;
end;

end.
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部