我想用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;