第一次使用MSHTML,想实现自动登录用户名和密码后,登录按钮没有"名称"是一个button, 网页中响应回车可以激活button进入登录.
procedure TForm1.FormCreate(Sender: TObject);
begin
   webbrowser1.Navigate('http://mail.163.com');
    Application.OnMessage :=MsgHandle;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
 FOleInPlaceActiveObject :=nil;
end;procedure TForm1.Button2Click(Sender: TObject);
var
Doc:IHTMLDocument2;
form:ihtmlformelement;
userinputelement,pwdinputelement:ihtmlinputelement;begin
doc:=webbrowser1.document as ihtmldocument2;
userinputelement:=(doc.all.item('username',0) as ihtmlinputelement);
userinputelement.value:=edit1.text;
pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement);
pwdinputelement.value:=edit2.text;
///??????????///用户名和密码已输入好,现在是调用过程响应回车?end;
我在网上找了一下相关代码是一个过程,以下代码我看不明白,请高手指点,我已经引到程序里.不知道怎么调用呢? 10.             如何解决网页不响应回车事件 
 public 
    { Public declarations } 
    procedure MsgHandle(var Msg :TMsg; var Handled :Boolean); 
  end; 
var 
  Form1: TForm1; 
  FOleInPlaceActiveObject :IOleInPlaceActiveObject; 
implementation 
{$R *.DFM} 
procedure TForm1.MsgHandle(var Msg :TMsg; var Handled :Boolean); 
var 
 iOIPAO :IOleInPlaceActiveObject; 
 Dispatch :IDispatch; 
begin 
 if WebBrowser1 =nil then 
 begin 
  Handled :=False; 
  Exit; 
 end; 
 Handled :=(IsDialogMessage(WebBrowser1.Handle, Msg) =True); 
 if (Handled) and (not WebBrowser1.Busy) then 
 begin 
  if FOleInPlaceActiveObject =nil then 
  begin 
   Dispatch :=WebBrowser1.Application; 
   if Dispatch <>nil then 
   begin 
    Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO); 
    if iOIPAO <>nil then 
     FOleInPlaceActiveObject :=iOIPAO; 
   end; 
  end; 
 end; 
 if FOleInPlaceActiveObject <>nil then 
  if ((Msg.message =WM_KEYDOWN) or (Msg.Message =WM_KEYUP)) and ((Msg.wParam =VK_BACK) or (Msg.wParam =VK_LEFT) or (Msg.wParam =VK_RIGHT)) then 
  else 
   FOleInPlaceActiveObject.TranslateAccelerator(Msg); 
end; 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
 Application.OnMessage :=MsgHandle; 
end; 
procedure TForm1.FormDestroy(Sender: TObject); 
begin 
 FOleInPlaceActiveObject :=nil; 
end; 

解决方案 »

  1.   

    看看这里:http://community.csdn.net/help/GetUsablePoint.htm,每次发贴都可以得到30分,所以你发贴提问的时候就自动获取了30分,可是你的贴子才20分,所以你赚了!!!! 分数虽然是论坛虚拟的东西,可以说没有什么实际价值。但它却是鼓励别人的一种方式,增加问题分数肯定会得到更多人的关注。在相互不了解的情况下,诚意虽然不能完全有分数来定,但却是最重要的参考标准。