def _accessible_object_from_window(self, hwnd):
"""???????AccessibleObject
:type hwnd: int
:param hwnd: ??
:raises: ValueError
:rtype: comtypes.gen.Accessibility.IAccessible
"""
if not win32gui.IsWindow(hwnd):
raise ValueError("window(%s) is not valid!" % hwnd)
OBJID_WINDOW = 0
OBJID_CLIENT = -4
if (win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE) & win32con.WS_CHILDWINDOW) > 0:
objID = OBJID_CLIENT
else:
objID = OBJID_WINDOW
accObj = ctypes.POINTER(IAccessible)()
ctypes.oledll.oleacc.AccessibleObjectFromWindow(hwnd,
objID,
ctypes.byref(IAccessible._iid_),
ctypes.byref(accObj))
return accObj
评论列表
文章目录