本帖最后由 拉风晓晓 于 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
|