你可以自己写一个试一试,直接只要一个TWebBrowser,然后登陆一个网站,如果你要到自己的邮箱,一般先输入用户名,按下TAB,输入密码,按Enter你会发现你自己编的程序中TWebBrowser根本不响应TAB和Enter

解决方案 »

  1.   

    I can.
    我以前回复过
    不过贴子找不到了
    我再看看
      

  2.   

    不好找我说一下大概思路吧
    1。实现是用SendKey函数在Delphi光盘上
    2。拦截WM_KEYDOWN消息,判断是否回车及是否发给TWebBrowser的,然后用SendKey
    3。拦消息用WinProc或TApplication控件,
       用GetWindowRect(Msg.hwnd,tmpRect);然后判断tmpRect是否与你的TWebBrowser相同,然后...
      

  3.   

    找到了
     
      
    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
    var Handled: Boolean);
    var
    tmpRect,tmpRect1:TRect;
    begin
    GetWindowRect(Msg.hwnd,tmpRect);
    GetWindowRect(webBrowser1.handle,tmpRect1);
    if (Msg.message=WM_KEYDOWN)and(Msg.wParam=VK_RETURN)
    and(tmpRect.Left = tmpRect1.Left )and (tmpRect.Top = tmpRect1.Top ) then
    SendKeys(#13,True);
    end;
     
      

  4.   

    wisenowa(无人喝彩) 
    请告诉我SendKeys函数在光盘什么地方啊,还有,这个过程是否需要在主窗口上加一个ApplicationEvents1控件,这样就会导致整个应用程序全部响应这个过程了啊,我以前这样写过,但是没有成功
      

  5.   

    我做的东西就是用这个没问题
    我当时的问题是再<text aerea>(可能是)中回车不换行
    就是这样解决的SendKey在Delphi光盘上的SendKeys.pas中,你查找一下
      

  6.   

    SendKey我已经找到了,但是我按照你的代码写上去,反应都没有
      

  7.   

    放了一个ApplicationEvents1组件,然后在他的事件中写你的代码,结果没有反应
      

  8.   

    不会吧
    我作了一个试验,给你贴出来
    如果与你所想要的不符,那我也帮不了你unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      AppEvnts, OleCtrls, SHDocVw;type
      TForm1 = class(TForm)
        WebBrowser1: TWebBrowser;
        ApplicationEvents1: TApplicationEvents;
        procedure ApplicationEvents1Message(var Msg: tagMSG;
          var Handled: Boolean);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationuses sndkey32;{$R *.DFM}procedure  TForm1.ApplicationEvents1Message(var  Msg:  tagMSG; 
    var  Handled:  Boolean); 
    var 
      tmpRect,tmpRect1:TRect;
    begin 
      GetWindowRect(Msg.hwnd,tmpRect);
      GetWindowRect(webBrowser1.handle,tmpRect1);
      if  (Msg.message=WM_KEYDOWN)and(Msg.wParam=VK_RETURN)
      and(tmpRect.Left  =  tmpRect1.Left  )and  (tmpRect.Top  =  tmpRect1.Top  )  then
        SendKeys(#13,True);   
    end; procedure TForm1.FormCreate(Sender: TObject);
    begin
      WebBrowser1.Navigate('D:\a.htm');
      //文件a.htm的内容,放到D盘根目录
      //<form name="form1" method="post" action="">
      //<textarea name="textfield" rows="5"></textarea>
      //</form>
    end;end.
      

  9.   

    你真走运我才解决了这个问题!不过代码在家里!你想要的话请联系[email protected]
      

  10.   

    在初始化函数里面,增加  OleInitialize(nil);在推出程序之前,增加:
      
      OleUninitialize();
      

  11.   

    up,up ,up ,up ,up ~~~~~~~~~~~~~~~~~~~