我想找出桌面所有子窗口(一级)的句柄。怎么找
我原先想,先找出一个,然后求出父窗口(桌面)句柄,再求父窗口的一个一个子窗口,直到句柄为0,但结果不对。
请教各位

解决方案 »

  1.   

    var
      H: HWND;
    begin
      Memo1.Clear;
      H := 0;
      repeat
        H := FindWindowEx(GetDesktopWindow, H, nil, nil);
        if H <> 0 then
          if IsWindowVisible(H) then
            Memo1.Lines.Add(IntToStr(H));
      until H = 0;
    end;
      

  2.   

    我用spy++,看到QQ窗体的类是#32770。我用下面代码找到一个窗口,是不是应该就是#32770类的第一个窗口。
    w0:=findwindow('#32770',nil); //找到窗口
      label1.caption:=inttostr(W0);
    但它的句柄不在您上边代码列出的
      

  3.   

    都会用spy++了,看看它的父窗口是什么啊,那就不是属于桌面了
    还有你那QQ估计也老版本了吧,新版本不是这个类名
      

  4.   

    谢了!不过还不太明白。
    再问一句,就结贴:label2.caption:=inttostr(GetDesktopWindow);显示为0。肯定不对,问题在哪里?
      

  5.   

    没碰到过,用GetLastError看看是否有错误