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

高分求解有关问题,各位大侠帮帮忙忙。顶贴有分

2012-02-12 
高分求解问题,各位大侠帮帮忙忙。。。。。。。。顶贴有分我的一个程序是获取另外一个程序的窗口句柄,我想请教一个

高分求解问题,各位大侠帮帮忙忙。。。。。。。。顶贴有分
我的一个程序是获取另外一个程序的窗口句柄,我想请教一个问题就是:
如何只通过父窗口A句柄获取弹出窗口B的的句柄,窗口B可能是模态的也有可能是非模态的。
通过SPY++可以看到该弹出的窗口B的父句柄就是指向窗口A的。
我通过FindwindowEx用hwndChildAfter这个参数进行了遍历,无法遍历到弹出的窗口B,但是该窗口A下的子窗口都可以遍历出来,只要不是弹出的窗口。
然后我又用EnumChildWindows进行了一次遍历,发现还是没有遍历到窗口B。

我不想使用如下办法:遍历桌面窗口下的所有子窗口然后再去比对他们的父窗口是否是A窗口
所以请教各位大侠,有没有好的快速的有效的解决办法,小弟我没招了。。。


[解决办法]
这种估计还是要枚举所有的子窗口,然后自己回调中判断一下,开个线程来做应该也还好
[解决办法]
用窗口标题来 Find 呢?
[解决办法]
又见钻石了! 膜拜下.......

钻石说的对.

如果要是同程序,在创建弹出对话框的时候就把其句柄给sendmessage到父窗口
不同程序,先把要接收消息的窗口句柄保留待用,创建子框时发消息

[解决办法]
我觉得用窗口名来findwindows就很ok呀。。。。。
[解决办法]
没什么好的方法和建议
能不能注入到程序里?
[解决办法]
只能枚举窗口了。。。
[解决办法]
试试采用findwindow("窗口类名","窗口名")进行查找
[解决办法]
HWND hParent = 父窗口;
FindWindowEx(hParent, NULL, _T("class"), _T("title"));

仔细 类名和窗口标题。
[解决办法]
基本上有两种可能,因为具有WS_POPUP窗口风格的窗口不能是WS_CHILD,所以它不能是主窗口的子窗口。因此它创建的时候父窗口有可能是主窗口也有可能是NULL(桌面),因此EnumChildWindows是不成立的。尝试使用GetWindow(HWND, GW_ENABLEDPOPUP);

[解决办法]
或者再尝试EnumThreadWindows,EnumWindows两个API,应该都可以
[解决办法]
有时候其他函数不顶用的时候,试试GetLastActivePopup()这个
[解决办法]
你为什么不喜欢用比较父窗口的方法,通过你的描述,俺认为这是很自然的相法。

[解决办法]
好吧,学习的过程中拿分
[解决办法]
工作中未遇到这种情况,友情帮顶
[解决办法]
友情帮顶。同求同学习,同求分
[解决办法]
友情帮顶。同求同学习,同求分
[解决办法]
要是我,估计就直接用你说的遍历全部然后比较父窗口了
[解决办法]

探讨
要是我,估计就直接用你说的遍历全部然后比较父窗口了

[解决办法]
比较深啊。我还得继续专啊
[解决办法]
FindWindowEx(hParent, NULL, NULL, _T("title"));
这样应该是可行的,楼主Checked一下你使用FindWindowEx中的参数问题.
[解决办法]
我以前也是用比较父窗口的方法,继续关注,帮顶!

热点排行