menfan1 发表于 2011-12-24 15:53:32

问题:两个相同类名的窗口怎么区分各自的句柄呢?

本帖最后由 menfan1 于 2011-12-24 17:02 编辑

问题:两个窗口(父窗口和子窗口)怎么区分各自的句柄呢?两个窗口除了类名(且类名相同)之外啥信息都抓不出来,虽然标题不同,但是锁屏下标题不管用哈,就是取不到子窗口的句柄,大家有啥好办法呢?

502762378 发表于 2011-12-26 10:47:12

这个_WinAPI_EnumWindows试过吗?
高级会员?

menfan1 发表于 2011-12-26 11:04:04

本帖最后由 menfan1 于 2011-12-26 12:39 编辑

回复 2# 502762378

试过,没用哈
注意:有个前提:锁屏下操作。一般来说,不锁屏的情况下都能取到句柄。

menfan1 发表于 2011-12-26 11:15:55

本帖最后由 menfan1 于 2011-12-26 12:39 编辑

_WinAPI_EnumWindowsPopup,_WinAPI_EnumWindowsTop,_WinAPI_EnumWindows,_WinAPI_FindWindows等都试过了,还有其他的办法吗?
注意:有个前提:锁屏下操作。一般来说,不锁屏的情况下都能取到句柄。

netegg 发表于 2011-12-26 16:07:40

本帖最后由 netegg 于 2011-12-26 16:08 编辑

EnumChildWindows
如果确定是父子关系,看看谁是父谁是子,不就行了

menfan1 发表于 2011-12-26 16:35:57

回复 5# netegg

确定父子关系,父窗口能取到句柄,子窗口取不到句柄,这个函数也用过了。

netegg 发表于 2011-12-26 17:02:52

本帖最后由 netegg 于 2011-12-26 17:03 编辑

回复 6# menfan1
不可能呀,如果是父窗体肯定可以取到子窗体,如果是子窗体获取不到父窗体,必须用GetAncestor才能得到父窗体
enumchildwindows($hParentWnd)会得不到子窗体?

autt 发表于 2011-12-26 21:41:25

重新封装的就取不到吧,如QQ这类的

netegg 发表于 2011-12-27 08:47:44

回复 8# autt
qq的界面不是标准api

menfan1 发表于 2011-12-27 19:24:55

回复 7# netegg

你试试先_WinAPI_LockWorkStation(),后执行       
$hWin1 = _WinAPI_EnumChildWindows($hWin)
_ArrayDisplay($hWin1, '_WinAPI_EnumChildWindows')
根本就不显示哦

menfan1 发表于 2011-12-27 19:25:50

父窗口和子窗口都是类名#32770
页: [1]
查看完整版本: 问题:两个相同类名的窗口怎么区分各自的句柄呢?