*******如何用DELPHI执行网页中submit按钮的功能?(200分)

  • 主题发起人 主题发起人 hryyx
  • 开始时间 开始时间
H

hryyx

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用DELPHI执行网页中submit按钮的功能,将网页中Form内的数据POST到下一个网页?
 
试试下面的方法
procedure TForm1.Button1Click(Sender: TObject);
var
Doc: OleVariant;
begin
Doc := WebBrowser1.Document;
Doc.All('form1').submit();
end;
 
Doc.All('form1').submit();
提示“尚未实现”
 

Doc.forms.item(0).submit()
试试
 
用CGI Expert控件,一切搞定!
 
请问如何获得Internet连接的IP地址?回答后马上给分!
 
获得Internet连接的IP地址?
不明白什么意思……
 
procedure TFrmUrlCommit.CommitUrlData(vRefererUrl: OleVariant;
UserField, UserValue, PasswordField, PasswordValue: string;
OtherPostData: OleVariant);
// 内部小函数,把提交字符串写入variant;
function GetPostData(Content: string): OleVariant;
var
I: Integer;
begin
Result := VarArrayCreate([0, length(content)], varByte);
for i := 0 to Length(content) - 1 do
begin
Result := Ord(content[i + 1]);
end;
Result[Length(content)] := 0;
end;
// 内部小函数结束
var
vHeaders, vPostData, vFrame, vFlags, vCommitData: OleVariant;
aWBCommit: TWebBrowser;
begin
aWBCommit := TWebBrowser.Create(nil);
vHeaders := 'Content-Type: application/x-www-form-urlencoded' + #10#13#0;

if VarIsNull(OtherPostData) then
vCommitData := UserField + '=' + UserValue + '&' +
PasswordField + '=' + PasswordValue
else
vCommitData := UserField + '=' + UserValue + '&' +
PasswordField + '=' + PasswordValue + '&' + OtherPostData;
vPostData := GetPostData(vCommitData);
vFlags := 31;
TVarData(vPostData).vType := varArray;
aWBCommit.Navigate2(vRefererUrl, vFlags, vFrame, vPostData, vHeaders);
FreeAndNil(aWBCommit);
end;

如下方式调用
CommitUrlData(
'http://10.97.0.6/cgi-bin/login',
'LoginName', 'aaa@good.com.cn',
'Password', 'aaa',
NULL);
当然各个 提交参数 要自己 分析。

 
如果只是想提交和得到数据,可以用这个控件
http://vcl.vclxx.org/DELPHI/D32FREE/HTTPGET.ZIP
源码,封装的wininet.dll,非常简单实用,虽然有一些小bug,不过可以自己动手修改。
 
后退
顶部