在WebBrowser裡填寫表單的問題 |
答題得分者是:chiehmin
|
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
我用WebBrowser來開啟並登入hotmail:
var Doc,WForm:OleVariant; WebBrowser1.Navigate('http://www.hotmail.com'); ... Doc:=WebBrowser1.OleObject.Document; WForm:=Doc.Forms.Item('form1'); WForm.Item('login',0).value:='my_account@hotmail.com'; WForm.Item('passwd',0).value:='my_password';可是,若將紅色的部份改用變數代入,執行時就會出錯,例如: var FormName:string; FormName:='form1'; ... WForm:=Doc.Forms.Item(FormName); ...不知為何?請問要如何修正才能讓這些參數以變數代入? |
chiehmin
高階會員 發表:13 回覆:134 積分:134 註冊:2002-05-23 發送簡訊給我 |
private { Private declarations } ok: Byte; ....... procedure TForm1.Button1Click(Sender: TObject); begin ok := 0; WebBrowser1.Navigate('http://www.hotmail.com/'); Repeat Application.ProcessMessages; Until ok = 2; ShowMessage('登入完成'); end; procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var Docs, Edits: OleVariant; begin Case ok of 0: begin If Pos('uilogin', AnsiLowerCase((Sender As TWebBrowser).LocationURL)) > 0 then begin Docs := (Sender As TWebBrowser).OleObject.Document; Edits := Docs.Forms.item('form1', 0).all.Item('login', 0); Edits.Value := Id.Text; Edits := Docs.Forms.item('form1', 0).all.Item('passwd', 0); Edits.Value := Password.Text; Docs.Forms.item('form1', 0).submit; ok := 1; end; end; 1: begin If Pos('hmhome', AnsiLowerCase((Sender As TWebBrowser).LocationURL)) > 0 then ok := 2; end; end; end; |
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
|
chiehmin
高階會員 發表:13 回覆:134 積分:134 註冊:2002-05-23 發送簡訊給我 |
變數要記得宣告為OleVariant
如
var param1: OleVariant; begin param1 := 'form1'; .... Edits := Docs.Forms.item(param1, 0).all.Item('login', 0); .... .... 引言: chiehmin,您好: 謝謝你提供確保登入網頁的方法。不過,我是希望能用在hotmail以外的網站,也就是'form1'、'login'以及'passwd'這些表單ID能依照登錄網頁的不同而改變。可是Doc.Forms.Item('form1')...一旦將'form1'以一個變數取代,就會出錯(其他兩個表單ID也一樣)。不知道有沒有解決方法? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |