我想用WebBrowser做一个自动填表单的程序.我在DocumentComplete事件上是这样写的.意思是想下载完成第一个网页后,进入第二个网页,然后填写表单并提交.但是,当我运行的时候总有一个错误提示,提示如下:
Project project1.exe raised exception class EAccessViolation with message 'Access violation at address 0045F475 in module project1.exe Read of Address 00000000.万分感谢!附代码:
.....
var
flag: Integer; //全局变量
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if(flag = 1) then
begin //进入网页1
WebBrowser1.Navigate('http://localhost/lnw-boss/common/loadMenu.do?arent_id=5&title=%C8%CF%D6%A4%B9%DC%C0%ED');
end; if(flag = 2) then
begin //进入网页2
WebBrowser1.Navigate('http://localhost/lnw-boss/radius/onlineUser.do?action=query');
end; if(flag = 3) then
begin //填写表单并提交. 异常提示就出在这一步,如果我把这两句放在一个Button事件上,点击Button执行一切正常.我想这两句本身是没有问题的.
(((WebBrowser1.Document as IHTMLDocument2).body.all as
IHTMLElementCollection).item('userName', 0) as IHTMLInputElement
).value := '0204111032'; (((WebBrowser1.Document as IHTMLDocument2).body.all as
IHTMLElementCollection).item('onLineUserForm', 0) as IHTMLFormElement
).submit; end;
flag:=flag+1; //计数器加一
end;
Project project1.exe raised exception class EAccessViolation with message 'Access violation at address 0045F475 in module project1.exe Read of Address 00000000.万分感谢!附代码:
.....
var
flag: Integer; //全局变量
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if(flag = 1) then
begin //进入网页1
WebBrowser1.Navigate('http://localhost/lnw-boss/common/loadMenu.do?arent_id=5&title=%C8%CF%D6%A4%B9%DC%C0%ED');
end; if(flag = 2) then
begin //进入网页2
WebBrowser1.Navigate('http://localhost/lnw-boss/radius/onlineUser.do?action=query');
end; if(flag = 3) then
begin //填写表单并提交. 异常提示就出在这一步,如果我把这两句放在一个Button事件上,点击Button执行一切正常.我想这两句本身是没有问题的.
(((WebBrowser1.Document as IHTMLDocument2).body.all as
IHTMLElementCollection).item('userName', 0) as IHTMLInputElement
).value := '0204111032'; (((WebBrowser1.Document as IHTMLDocument2).body.all as
IHTMLElementCollection).item('onLineUserForm', 0) as IHTMLFormElement
).submit; end;
flag:=flag+1; //计数器加一
end;
解决方案 »
- 在多个窗体的程序里为什么我窗体CLOSE的时候会把整个程序关闭呢?
- 软件的熵增理论
- label的显示
- 请问DELPHI7打包程序中如何在程序菜单里加入“删除”快捷方?谢谢
- 高手给我介绍一本vcl书籍!!!!
- 不难,但我不会啊
- 关于TDBGridEh控件的滚动条问题
- 如何字符串转换浮点?
- FAST REPORT能将主明细表合并在一行吗
- 关于控件中使用hook的问题,(chechy,zswang,windindance你们快来呀看看呀)......
- 我把TWebBrowser的statusbar设为true但状态栏还是不显示
- 请问如何禁止一个自己编写应用程序用标题栏都进行拖动,delphi标准窗口。
URL As Variant)
If (pDisp Is WebBrowser1.Object) Then
Debug.Print "Web document is finished downloading"
End If
End Sub怎么转换成Delphi代码啊?! 感谢了!