首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

为何通过FindWindowEx获取不到呢

2013-04-02 
为什么通过FindWindowEx获取不到呢?是不是要一级级找下去才找得到?procedure TForm1.Button1Click(Sender:

为什么通过FindWindowEx获取不到呢?
是不是要一级级找下去才找得到?

procedure TForm1.Button1Click(Sender: TObject);
var
hWnd:LongInt;
begin
   hWnd:=FindWindowEx(0,THandle(nil),'#262700',nil);
     if hWnd<>0 then
  begin
 
   sendmessage(hWnd,WM_SYSCOMMAND,SC_MINIMIZE,0);
  end
  else  MessageBox(self.handle,'没找到该窗口句柄','提示',0);
 
end;

为何通过FindWindowEx获取不到呢
[解决办法]

引用:
引用:
对,要一级级找。
先FindWindow找到顶层窗口,再FindWindowEx找子窗口。
肉眼是看不出一级级的层次的,用Spy++可以。

通过句柄查看精灵,找的了这些窗口信息,包括进程ID,还需要一级级查找吗?

有没有什么可以不用一级级查找的呢?

重启一下那个进程,发现窗口句柄肯定会变的!所以还是得查找。也可以在找到顶层窗口之后,用EnumChildWindows枚举所有子窗口,但这样还不如一级级的找方便。
你说的“句柄查看精灵”我不知道好不好用,但还是推荐使用微软出品的Spy++。

热点排行