IE 的本地登录 我用TWebBrowser装入一个网页的一个登录页面以给值到USERNAME和PASSWORD中了怎样让他POST?谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你既然能访问输入用户名和密码的Input,应该就可以访问到他们所在的Form,调用这个Form的Submit方法就可以了。 一样吗?一个是属性一个是方法属性可以用 document.item(1)='uername'方法呢? procedure TForm1.Button11Click(Sender: TObject);const BaseURL = 'http://bbs.dvbbs.net/'; //论坛所在地址 UserName = 'guestabc'; //登录用户名 Password = 'guestabc'; //登录密码 CookieNone = 0; //不保留Cookie CookieDay = 1; //保留Cookie一天 CookieMonth = 2; //保留Cookie一月 CookieYear = 3; //保留Cookie一年 UserNormal = 2; //正常登录 UserHidden = 1; //隐身登录 BoardID = 2; //DVBBS中的灌水乐园,其他只用知道版块号即可,也可根据得到的页面自动提取版块号var Params: TStrings; HTML: String; MD5Pass: String; p1,p2: Integer;begin Params:=TStringList.Create; try Params.Add('username='+UserName); Params.Add('password='+Password); Params.Add('CookieDate='+InttoStr(CookieNone)); Params.Add('userhidden='+InttoStr(UserNormal)); Params.Add('comeurl='+BASEURL+'index.asp'); HTML:=IdHttp.Post(BaseURL+'login.asp?action=chk',Params); if Pos(BASEURL+'index.asp',HTML)=0 then begin ShowMessage('登录失败'); Exit; end; HTML:=IdHttp.Get(BASEURL+'announce.asp?boardid='+InttoStr(BoardID)); p1:=Pos('Dvbbs.MemberWord=''',HTML); if p1=0 then begin ShowMessage('获取HTML失败!'); Exit; end; Inc(p1,18); p2:=PosEx('''',HTML,p1); MD5Pass:=Copy(HTML,p1,p2-p1); Params.Clear; Params.Add('followup='); Params.Add('rootID='); Params.Add('star='); Params.Add('TotalUseTabl='); Params.Add('upfilerename='); Params.Add('username='+UserName); Params.Add('passwd='+MD5Pass); Params.Add('font='+'[灌水]'); Params.Add('subject='+'测试,请版主删除!'); //发帖标题,不得超过 25 个汉字或50个英文字符 Params.Add('Expression='+'face1.gif'); //发帖心情,请自行查阅心情图片名称 Params.Add('Content='+'测试,请版主删除!'+#13#10+'测试内容'); //发帖内容 Params.Add('emailflag='+'yes'); //有回复时使用邮件通知您? Params.Add('signflag='+'yes'); //是否显示您的签名? IdHttp.Request.Referer:=BASEURL+'announce.asp?boardid='+InttoStr(BoardID); HTML:=IdHttp.Post(BaseURL+'Saveannounce.asp?boardID='+InttoStr(BoardID),Params); if Pos('错误信息',HTML)>0 then ShowMessage('发帖不成功!') else ShowMessage('发帖成功!'); finally Params.Free; end;end; ADO连接Foxpro,表名中含有-(减号)就会报错。 quickreport的一个小问题,请进来看看:) ip 的问题 帮个小忙就可以 了。 简简单单,一看就明了::::::::::::::: 怎样晋升到高手行列,郁闷中.......... 一个字符转换问题--String->PChar和PChar->String。 帮帮忙一个注册的问题? 无法创建窗体,这是怎么回事? 如何将字符串转化为类名使用,调用窗口 access的数据库结构不稳定。如何解决呀。 win98非GDI资源内存泄露问题
方法呢?
const
BaseURL = 'http://bbs.dvbbs.net/'; //论坛所在地址
UserName = 'guestabc'; //登录用户名
Password = 'guestabc'; //登录密码 CookieNone = 0; //不保留Cookie
CookieDay = 1; //保留Cookie一天
CookieMonth = 2; //保留Cookie一月
CookieYear = 3; //保留Cookie一年 UserNormal = 2; //正常登录
UserHidden = 1; //隐身登录 BoardID = 2; //DVBBS中的灌水乐园,其他只用知道版块号即可,也可根据得到的页面自动提取版块号
var
Params: TStrings;
HTML: String;
MD5Pass: String;
p1,p2: Integer;
begin
Params:=TStringList.Create;
try
Params.Add('username='+UserName);
Params.Add('password='+Password);
Params.Add('CookieDate='+InttoStr(CookieNone));
Params.Add('userhidden='+InttoStr(UserNormal));
Params.Add('comeurl='+BASEURL+'index.asp');
HTML:=IdHttp.Post(BaseURL+'login.asp?action=chk',Params);
if Pos(BASEURL+'index.asp',HTML)=0 then
begin
ShowMessage('登录失败');
Exit;
end; HTML:=IdHttp.Get(BASEURL+'announce.asp?boardid='+InttoStr(BoardID));
p1:=Pos('Dvbbs.MemberWord=''',HTML);
if p1=0 then
begin
ShowMessage('获取HTML失败!');
Exit;
end;
Inc(p1,18);
p2:=PosEx('''',HTML,p1); MD5Pass:=Copy(HTML,p1,p2-p1); Params.Clear;
Params.Add('followup=');
Params.Add('rootID=');
Params.Add('star=');
Params.Add('TotalUseTabl=');
Params.Add('upfilerename=');
Params.Add('username='+UserName);
Params.Add('passwd='+MD5Pass);
Params.Add('font='+'[灌水]');
Params.Add('subject='+'测试,请版主删除!'); //发帖标题,不得超过 25 个汉字或50个英文字符
Params.Add('Expression='+'face1.gif'); //发帖心情,请自行查阅心情图片名称
Params.Add('Content='+'测试,请版主删除!'+#13#10+'测试内容'); //发帖内容
Params.Add('emailflag='+'yes'); //有回复时使用邮件通知您?
Params.Add('signflag='+'yes'); //是否显示您的签名? IdHttp.Request.Referer:=BASEURL+'announce.asp?boardid='+InttoStr(BoardID);
HTML:=IdHttp.Post(BaseURL+'Saveannounce.asp?boardID='+InttoStr(BoardID),Params);
if Pos('错误信息',HTML)>0 then
ShowMessage('发帖不成功!')
else
ShowMessage('发帖成功!');
finally
Params.Free;
end;end;