使用SendMessage(GetFocus,WM_SETTEXT,0,longint(PChar('123456')));
当前焦点是浏览器的一个输入框,发现并没有改变输入框的值,而是改变了ie的标题
而同样的方法对其它界面都是有效的,该怎么处理?

解决方案 »

  1.   

    使WebBrowser获得焦点:uses MSHTML;(WebBrowser1.Document as IHTMLDocument2).ParentWindow.Focus;
      

  2.   

    取得IE浏览器的窗口句柄,取得IHTMLDocument2接口,然后再利用.ParentWindow.Focus方法使其获得焦点。
      

  3.   

    老妖:
    现在是焦点已经在输入框上,只是用SendMessage没法给输入框赋值(我了解到说网页里的输入框是没有hwnd的)
    你说的ParentWindow.Focus目的是为了把焦点放到输入框上吗?还请明示!
      

  4.   

    要取得浏览器上的控件是和普通控件不一样的,上面的控件都是通过代码在本地动态生成的,不能简单地调用API,要利用浏览器提供的接口。