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