Delphi WebBrowser Ole 自动登录网站

来源:互联网 发布:汇通启富软件下载 编辑:程序博客网 时间:2024/06/05 21:13

1. 用WebBrowser控件

Uses SHDocVw, MSHTML;procedure TForm1.btnLoginClick(Sender: TObject);var  UserEdt, UserPwd, LogBtn: IHTMLELEMENT;begin  WebBrowser.Navigate(edtUrl.Text);  while WebBrowser.busy do  Application.ProcessMessages;  while WebBrowser.ReadyState <>READYSTATE_COMPLETE do    Application.ProcessMessages;  //具体的用户名,密码,登录按钮的名称,根据登录页面表单而定  UserEdt := (WebBrowser.Document as IHTMLDOCUMENT2).all.item('name',emptyParam) as IHTMLELEMENT;  UserPwd := (WebBrowser.Document as IHTMLDOCUMENT2).all.item('password',emptyParam) as IHTMLELEMENT;  LogBtn := (WebBrowser.Document as IHTMLDOCUMENT2).all.item('button',emptyParam) as IHTMLELEMENT;//  UserEdt := (WebBrowser.Document as IHTMLDOCUMENT2).all.item('userid',emptyParam) as IHTMLELEMENT;//  UserPwd := (WebBrowser.Document as IHTMLDOCUMENT2).all.item('pwd',emptyParam) as IHTMLELEMENT;//  LogBtn := (WebBrowser.Document as IHTMLDOCUMENT2).all.item('submit',emptyParam) as IHTMLELEMENT;  UserEdt.setAttribute('value', edtUserName.Text,0);  UserPwd.setAttribute('value', edtPassword.Text,0);  LogBtn.Click;end;



2. ole方式


Uses ComObj;procedure TForm1.Button1Click(Sender: TObject);begin  OpenIE(edtUrl.Text);end;procedure TForm1.OpenIE(aURL: string);var  IE, UserName, Password, BtnLogin: Variant;//  UserEdt,UserPwd,LogBtn:IHTMLELEMENT;  WinHanlde : HWnd;begin  if( VarIsEmpty(IE) )then  begin    IE := CreateOleObject('InternetExplorer.Application');    IE.Visible := true;  {可见}    IE.left := 0;    IE.top := 0;    IE.height := 1024;   //高度    IE.width := 768;   //宽度    IE.menubar := True;   //取消菜单栏    IE.addressbar := True;   //取消地址栏    IE.toolbar := True;   //取消工具栏    IE.statusbar := True;   //取消状态栏    IE.resizable := True;   //不允许用户改变窗口大小    IE.Navigate(aURL);    while IE.Busy do    begin      Application.ProcessMessages;    end;    while IE.ReadyState <> READYSTATE_COMPLETE do    begin      Application.ProcessMessages;    end;    //具体的用户名,密码,登录按钮的名称,根据登录页面表单而定    UserName := IE.Document.all.item('name');    Password := IE.Document.all.item('password');    BtnLogin := IE.Document.all.item('button');//    UserName := IE.Document.all.item('userid');//    Password := IE.Document.all.item('pwd');//    BtnLogin := IE.Document.all.item('submit');    UserName.setAttribute('innerText', edtUserName.Text);    Password.setAttribute('innerText', edtPassword.Text);    BtnLogin.Click;  end  else  begin    WinHanlde := FindWIndow('IEFrame', nil);    if (0 <> WinHanlde) then    begin      IE.Navigate(aURL);      SetForegroundWindow(WinHanlde);    end    else      ShowMessage('Can''t open IE !');  end;end;



3.还有一种方式,使用 IWebBrowser2


procedure TForm1.Button2Click(Sender: TObject);var  IE:IWebBrowser2;  UserEdt, UserPwd, LogBtn: IHTMLELEMENT;begin  try    IE := CreateOleObject('InternetExplorer.Application') as IWebBrowser2;    IE.Visible := true;   //可见    IE.left := 0;    IE.top := 0;    IE.height := 1024;   //高度    IE.width := 768;   //宽度    IE.menubar := True;   //取消菜单栏    IE.addressbar := True;   //取消地址栏    IE.toolbar := 0;   //取消工具栏    IE.statusbar := True;   //取消状态栏    IE.resizable := True;   //不允许用户改变窗口大小//    IE.FullScreen := True;    IE.Navigate(edtUrl.Text, EmptyParam,EmptyParam,EmptyParam,EmptyParam);    while IE.Busy do    begin      Application.ProcessMessages;    end;    while IE.ReadyState <> READYSTATE_COMPLETE do    begin      Application.ProcessMessages;    end;    //具体的用户名,密码,登录按钮的名称,根据登录页面表单而定    UserEdt := (IE.Document as IHTMLDOCUMENT2).all.item('name',emptyParam) as IHTMLELEMENT;    UserPwd := (IE.Document as IHTMLDOCUMENT2).all.item('password',emptyParam) as IHTMLELEMENT;    LogBtn := (IE.Document as IHTMLDOCUMENT2).all.item('button',emptyParam) as IHTMLELEMENT;    //具体的用户名,密码,登录按钮的名称,根据登录页面表单而定//    UserEdt := (IE.Document as IHTMLDOCUMENT2).all.item('userid',emptyParam) as IHTMLELEMENT;//    UserPwd := (IE.Document as IHTMLDOCUMENT2).all.item('pwd',emptyParam) as IHTMLELEMENT;//    LogBtn := (IE.Document as IHTMLDOCUMENT2).all.item('submit',emptyParam) as IHTMLELEMENT;    UserEdt.setAttribute('value', edtUserName.Text,0);    UserPwd.setAttribute('value', edtPassword.Text,0);    LogBtn.Click;  except  end;end;

下载源代码AutoLoginWeb.rar

原创粉丝点击