找回密码
 加入
搜索
查看: 2400|回复: 0

[AU3基础] 【已解决】得到的instance值有时不正确,为什么?求改错

[复制链接]
发表于 2014-7-31 21:14:00 | 显示全部楼层 |阅读模式
本帖最后由 拉风晓晓 于 2015-5-6 14:09 编辑

$handle为控件的句柄
Func _GetInstance($handle)
        Local $hWnd, $i, $Data,$testtxt
        $hWnd = _WinAPI_GetAncestor($handle, $GA_ROOTOWNER)
        $testtxt = WinGetClassList($hWnd)
        If $testtxt <> '' Then
                ;子窗口的parent和owner是同一个窗口,但是普通窗口的parent一般是NULL,owner是桌面
                $Data = _WinAPI_EnumChildWindows($hWnd)
                If IsArray($Data) Then
                        For $i = 1 To $Data[0][0]
                                If $Data[$i][0] = $handle Then
                                        Return $i-1 ;如果是控件,通过这里返回instance值,$i比该值大1
                                EndIf
                        Next
                EndIf
        EndIf

        Return -1 ;如果非控件,通过这里返回-1
EndFunc   ;==>_GetInstance
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 20:41 , Processed in 0.744823 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表