如何在程序中如何填充某一网页中输入控件值,并且自动提交?

juziling 2005-03-22 05:20:35
以下是 该网页 Form 区的内容:
<form method="post" name="input" action="pm.php?action=send&pmsubmit=yes" onSubmit="javascript: this.pmsubmit.disabled=true">
<input type="hidden" name="formhash" value="9dd96c20">

<table cellspacing="0" cellpadding="0" border="0" width="98%" align="center">
<tr> <td bgcolor="#B7B7B7">

<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr>
<td width="100%" colspan="2" class="header">发送短消息</td>
</tr>

<tr><td bgcolor="#FFFFFF" width="18%">到:</td>
<td bgcolor="#F7F7F7" width="82%"><input type="text" name="msgto" size="50" value=""></td></tr>
<tr>
<td bgcolor="#FFFFFF">标题:</td>
<td bgcolor="#F7F7F7"><input type="text" name="subject" size="65" value=""></td>
</tr>

<tr>
<td valign="top" bgcolor="#FFFFFF">内容:</td>
<td bgcolor="#F7F7F7"><textarea rows="8" name="message" cols="65" onKeyDown="javascript: ctlent();"></textarea>
<br><span class="smalltxt"><input type="checkbox" name="saveoutbox" value="1">保存到发件箱中   [完成后可按 Ctrl+Enter 发布]</span></td>
</tr>

</table>
</td></tr></table><br><center>
<input type="submit" name="pmsubmit" value="提   交">
</center></form>
...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
superlifeng 2005-03-24
  • 打赏
  • 举报
回复
又一个为了赚钱,不择手段的
vinsonshen 2005-03-24
  • 打赏
  • 举报
回复

aiirii 2005-03-22
  • 打赏
  • 举报
回复
...automatically fill in web forms of a running IE instance?


{
This example shows how to automatically fill in a search string
in the "Search Tip" page and click the search button.
}

uses
MSHTML_TLB;

// first navigate to tipspage

procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate('http://www.swissdelphicenter.ch/en/tipsuchen.php');
end;

// Try to access IE instance and fill out the search field with
// a text and click the search button

procedure TForm1.Button3Click(Sender: TObject);
var
hIE: HWND;
ShellWindow: IShellWindows;
WB: IWebbrowser2;
spDisp: IDispatch;
IDoc1: IHTMLDocument2;
Document: Variant;
k, m: Integer;
ovElements: OleVariant;
i: Integer;
begin
ShellWindow := CoShellWindows.Create;
// get the running instance of Internet Explorer
for k := 0 to ShellWindow.Count do
begin
spDisp := ShellWindow.Item(k);
if spDisp = nil then Continue;
// QueryInterface determines if an interface can be used with an object
spDisp.QueryInterface(iWebBrowser2, WB);

if WB <> nil then
begin
WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
if iDoc1 <> nil then
begin
WB := ShellWindow.Item(k) as IWebbrowser2;
begin
Document := WB.Document;

// count forms on document and iterate through its forms
for m := 0 to Document.forms.Length - 1 do
begin
ovElements := Document.forms.Item(m).elements;
// iterate through elements
for i := 0 to ovElements.Length - 1 do
begin
// when input fieldname is found, try to fill out
try
if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and
(CompareText(ovElements.item(i).type, 'text') = 0) then
begin
ovElements.item(i).Value := 'FindWindow';
end;
except
end;
// when Submit button is found, try to click
try
if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and
(CompareText(ovElements.item(i).type, 'SUBMIT') = 0) and
(ovElements.item(i).Value = 'Search') then // Suchen für German
begin
ovElements.item(i).Click;
end;
except
end;
end;
end;
end;
end;
end;
end;
end;

juziling 2005-03-22
  • 打赏
  • 举报
回复
我如何模仿这个表单向服务器端POST请求?
juziling 2005-03-22
  • 打赏
  • 举报
回复
但 该页面提交的内容并不是在http://。。。。 后边的。
我在想如何模拟一个提交来欺骗服务器段的。。。
longj 2005-03-22
  • 打赏
  • 举报
回复
1。模拟浏览器 直接发送 http 的文本。
2。使用ie控件,使用诸如 IHTMLDocument2 的类控制网页里的控件,再提交

或其他
juziling 2005-03-22
  • 打赏
  • 举报
回复
就是说 如何在程序中 向服务器提交一个 含有 表单信息的Web请求。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧