E
Ekin
Unregistered / Unconfirmed
GUEST, unregistred user!
是这样,我做了一个网页自动提交程序. 首次提交也一切正常. 但是,因为需要循环地 登录--->点按纽---->继续循环 于是就使用了一个Timer控件循环来提交,结果出现一个意外的事: 当首次提交OK后,再次在WebBrowser控件中提交登录网址,出现的却不是登录界面,而是登录后的界面,循环到webbrowser1.Navigate再次登陆时就会抱错. 编译为EXE后,程序的第一次提交是正常的,再次提交也是上面的问题,但关闭EXE重打开后又可以直接提交了. 感觉貌似是这个COOKIES在搞怪,不知道是不是这样 那么请教-----------------有没有办法在不重新启动进程的情况下,能多次提交? 也就是说,可以在不重启进程的情况下,搞定COOKIES? 谢谢~~~~ 部分代码______________________________________________________________________procedure TForm1.Timer1Timer(Sender: TObject);var Nowtime: string; sSql,code:string; doc:ihtmldocument2; inputlevariant; user,pwd:ihtmlinputelement;begin Nowtime:=FormatDateTime('HH:MM',Now); sSql:='SELECT CODE FROM ITM WHERE LEFT(SENDTIME,5)='''+Nowtime+''' '; ADOQuery1.SQL.Text:=sSql; ADOQuery1.Open; if not ADOQuery1.IsEmpty then begin Timer1.Enabled:=False; code:=ADOQuery1.fieldByname('CODE').AsString; webbrowser1.Navigate('http://www.www.com/id='+code+''); while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages; doc:=webbrowser1.document as ihtmldocument2; user:=(doc.all.item('LoginId',0) as ihtmlinputelement); user.value:=edit1.Text; pwd:=(doc.all.item('password',0) as ihtmlinputelement); pwd.value:=edit2.Text; input:=doc.all.item('submit',0); input.click; Timer1.Enabled:=True; end;end;第一次提交成功,第二次提交的时候已经不是登陆界面了,所以在 user:=(doc.all.item('LoginId',0) as ihtmlinputelement); user.value:=edit1.Text;句的时候USER就成了Nil,赋值就会抱错!! 如何解决啊!!分不是问题,可以在追加... 嘿嘿!!!!