http://passport.baidu.com/?login&tpl=mn
这个是百度登陆的页面
我想做个小软件登陆百度知道
这个是百度登陆的页面
我想做个小软件登陆百度知道
解决方案 »
- 请教大侠,这种打印报表delphi怎么做呢?
- SocketConnection与Delphi6问题
- 动态设置TAdoStoredProc的ProcedureName及其相关输入输出参数的问题
- 我是个新手,请帮忙看看这段ADO连接代码有什么问题吗?谢谢!!!
- 用DataSetProvider.GetRecords如何取得第N包的数据?
- Delphi的最高版本是多少?
- ADOQuery 中如何使用 select count?
- 有关信息管理系统的问题请指教
- RichEdit1 取消选定文本?
- 热点问题,思维体操,我想,我想,我想想想
- 关于SOCKET通讯服务端控件选择的问题(DxSock,ICS等),请教
- 有谁使用DELPHI开发过发传真[网络传真]
你的分有些少。
登录百度有多种方法,至少五种!而且不一定要用IDHTTP
怎么可以增加分数啊?
我也想给出我全部的分啊
哪个帮忙解决我分数全部都给他
我想用IDHTTP解决
获得编辑框的name属性和按钮的name属性
自动填写+自动点击登录按钮
procedure TForm1.Button2Click(Sender: TObject);
var
o : Olevariant;
begin
o := WebBrowser1.OleObject.document.all.item('T1',0);
o.value := 'T1';
o := WebBrowser1.oleobject.document.all.item('T2',0);
o.value := 'T2';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
o:OleVariant;
begin
WebBrowser1.Navigate('http://www.baidu.com',O);
end;procedure TForm1.Button2Click(Sender: TObject);
var
o:Olevariant;
begin
o:=WebBrowser1.OleObject.document.all.item('wd',0);
o.value:='你好,百度';
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
(Self.WebBrowser1.Document as IHTMLDocument3).getElementById('sb').click;
end;
这个网址的,修改一下
procedure TForm1.Button1Click(Sender: TObject);
var
o:OleVariant;
begin
WebBrowser1.Navigate('http://passport.baidu.com/?login&tpl=mn',O);
end;procedure TForm1.Button2Click(Sender: TObject);
var
o:Olevariant;
begin
o:=WebBrowser1.OleObject.document.all.item('username',0);
o.value:='username';
(Self.WebBrowser1.Document as IHTMLDocument3).getElementById('normModPsp').innerText:='123456';
end;
找不到
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls,MSHTML;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
WebBrowser1: TWebBrowser;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
o:OleVariant;
begin
WebBrowser1.Navigate('http://passport.baidu.com/?login&tpl=mn',O);
end;procedure TForm1.Button2Click(Sender: TObject);
var
o:Olevariant;
begin
o:=WebBrowser1.OleObject.document.all.item('username',0);
o.value:='username';
(Self.WebBrowser1.Document as IHTMLDocument3).getElementById('normModPsp').innerText:='123456';
end;procedure TForm1.Button3Click(Sender: TObject);
begin
(Self.WebBrowser1.Document as IHTMLDocument3).getElementById('sb').click;
end;end.
按钮1和2功能正常,模拟按下登录按钮报错!
procedure TForm1.Button3Click(Sender: TObject);
begin
(Self.WebBrowser1.Document as IHTMLDocument3).getElementById('sb').click;
end;
模拟按下登录按钮报错!
这是整个单元文件
你看看吧
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,mshtml, OleCtrls, SHDocVw, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
WebBrowser1: TWebBrowser;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
o:OleVariant;
begin
WebBrowser1.Navigate('http://www.baidu.com',O);
end;procedure TForm1.Button2Click(Sender: TObject);
var
o:Olevariant;
begin
o:=WebBrowser1.OleObject.document.all.item('wd',0);
o.value:='你好,百度'; //这个是填写那个输入框的
end;procedure TForm1.Button3Click(Sender: TObject);
begin //这个是按那个按钮的
(Self.WebBrowser1.Document as IHTMLDocument3).getElementById('sb').click;
end;end.
这是我以前写的一个126信箱登录例子。不需要填表单,直接打开网页就处于登录状态:
http://www.mwymwy.cn/126.exe
这个方法还好实现吧
就是登陆的那个按钮没有NAME
不然很容易实现的
登录按钮没有name或者id
所以没有办法点击
那个'sb'是什么啊?
登陆的按钮根本就没有name或者id
我不知道你的'sb'怎么出来的
procedure TForm1.Button1Click(Sender: TObject);
var
o:OleVariant;
begin
WebBrowser1.Navigate('http://passport.baidu.com/?login&tpl=mn',O);
end; procedure TForm1.Button2Click(Sender: TObject);
var
o:Olevariant;
begin
o:=WebBrowser1.OleObject.document.all.item('username',0);
o.value:='username';
(Self.WebBrowser1.Document as IHTMLDocument3).getElementById('normModPsp').innerText:='123456';
end;
关于点那个登陆按钮的问题,可以通过value获得该页面元素的
To:mwy654321()
可否把<D7+126信箱登录例子,不需要填表单,直接打开网页就处于登录状态>demo发给小弟study下?
Email:[email protected]
是的哦
两个EDIT,分别是用户名和密码
再点击一下登陆就可以了啊!
恐怕要用到ini保存密码和用户名,这样下次就不用再输入了.不过,要把ini放在一个好地方,要不,别人就知道你密码了
关注此帖.
和常规的方法不一样
我用D7用如下代码可以实现:procedure TMain.loginClick(Sender: TObject);
const
url ='http://passport.baidu.com/?login';
var
param : TStringList;
begin
idhttp1.Request.SetHeaders;
param := TStringList.Create;
param.add('tpl_ok=');
param.add('next_target=');
param.Add('tpl=tb');
param.add('skip_ok=');
param.add('aid=');
param.Add('needpay=');
param.add('need_coin=');
param.add('pay_method=');
param.Add('u=http://tieba.baidu.com/f&return_method=get&more_param=kw=XXX');
param.Add('return_type=');
param.add('psp_tt=0');
param.add('username='+id.text);
param.add('password='+pass.text);
param.add('mem_pass=1');
idhttp1.HandleRedirects := true;
idhttp1.Request.Referer := 'http://tieba.baidu.com/f?kw=XXX';
idhttp1.post(url,param);使用D2005使用同种方法提示需要验证码。
我采用的方法和37楼有异曲同工之处,使用idhttp的get方法完成登录。记得我两年前用VB的类似方法实现过。
memo1.Text := idhttp1.get('http://passport.baidu.com/?login&username=XXXX&password=XXXXXX');