if AnsiContainsText(chars,'QQ自由幻想') then 
窗体上显示的可能不是你这个字符串                      

解决方案 »

  1.   

    现在得不到这个窗口的句柄
    正常是通过EnumWindows可以枚举到QQ幻想这个窗口的,但现在枚举不到,用这个函数,还希望高手们能指点.
      

  2.   

    EnumWindowsProc遍历的是顶级窗口~`
      

  3.   

    不要用EnumWindowsProc来遍历窗口。
    用GetNextWindow来递归查询会好些。具体的代码你可以参考一下下面的:procedure TForm1.Button1Click(Sender: TObject);
    var
      FirstWindow: THandle;
      NameStr: array[0..255] of Char;
    begin
      ListBox1.Items.Clear;
      //EnumWindows(@EnumWindowsProc,0);
      FirstWindow :=GetActiveWindow;
      While(FirstWindow<>0)do
      begin
        GetWindowText(FirstWindow,NameStr,255);
        if NameStr<>'' then
        begin
          if IsWindowVisible(FirstWindow) and (GetParent(FirstWindow)=0) then//显示可见的无父窗体的窗体
              ListBox1.Items.Add(NameStr);
        end;
        FirstWindow:=GetNextWindow(FirstWindow,GW_HWNDNEXT);
      end;
    end;
      

  4.   

    一个带猜测性的想法,它的'QQ自由幻想 '后面可能加了几个空格或其它不可见字符
    AnsiContainsText(chars,'QQ自由幻想')
      

  5.   

    QQ好象是楼上的说的那样
    用VC的SPy++先找到那个窗口的句柄,再用FindwindowEx找他的窗口,我以前这样用这方法找过QQ的窗口,