做了个hook监控输入,对WM_CHAR,WM_IME_CHAR, WM_IME_COMPOSITION消息监控,现可以对word,qq等
但在ie地址栏输入的却无法取得,不知何故

解决方案 »

  1.   

    你用spy看看ie地址栏的类层次,自己发送消息可以获得的
    SendMessage(Hwnd,WM_GETTEXT,...);
      

  2.   

    var
      iehwnd,whwnd,rhwnd,chwnd,cbhwnd,ehwnd:integer;
      buf:array[0..256]of char;
    begin
      iehwnd:=findwindow('ieframe',nil);
      if iehwnd <> 0 then
      begin
        whwnd:=findwindowex(iehwnd,0,'workera',nil);
        rhwnd:=findwindowex(whwnd,0,'rebarwindow32',nil);
        chwnd:=findwindowex(rhwnd,0,'comboboxex32',nil);
        cbhwnd:=findwindowex(chwnd,0,'combobox',nil);
        ehwnd:=findwindowex(cbhwnd,0,'edit',nil);
        sendmessage(ehwnd,wm_gettext,100,integer(@buf));
      end;
      edit1.Text:=buf;
    end;//得到当前的网址!
      

  3.   

    应该是想获得地址栏的TEXT吧。
    楼上的 edit1.Text:=buf;?
      

  4.   

    用vc++的spy++看看就可以知道为什么rouqing(*冰雨&双子座奇缘*) 要用那么多个findwindowex了
      

  5.   

    用com组件,非常方便!我有源代码(取得IE地址栏的东东)