def kwargsFromSuper(cls,kwargs,relation=None): jabContext=None windowHandle=kwargs['windowHandle'] if relation=="focus": vmID=ctypes.c_int() accContext=JABHandler.JOBJECT64() JABHandler.bridgeDll.getAccessibleContextWithFocus(windowHandle,ctypes.byref(vmID),ctypes.byref(accContext)) jabContext=JABHandler.JABContext(hwnd=windowHandle,vmID=vmID.value,accContext=accContext.value) elif isinstance(relation,tuple): jabContext=JABHandler.JABContext(hwnd=windowHandle) if jabContext: jabContext=jabContext.getAccessibleContextAt(*relation) else: jabContext=JABHandler.JABContext(hwnd=windowHandle) if not jabContext: return False kwargs['jabContext']=jabContext return True
def _getJABRelationTargets(self, key): rs = self.jabContext.getAccessibleRelationSet() targets=[] for relation in rs.relations[:rs.relationCount]: for target in relation.targets[:relation.targetCount]: if relation.key == key: targets.append(JABHandler.JABContext(self.jabContext.hwnd, self.jabContext.vmID, target)) else: JABHandler.bridgeDll.releaseJavaObject(self.jabContext.vmID,target) return targets
def _getJABRelationFirstTarget(self, key): rs = self.jabContext.getAccessibleRelationSet() targetObj = None for relation in rs.relations[:rs.relationCount]: for target in relation.targets[:relation.targetCount]: if not targetObj and relation.key == key: targetObj = JAB(jabContext=JABHandler.JABContext( self.jabContext.hwnd, self.jabContext.vmID, target)) else: JABHandler.bridgeDll.releaseJavaObject( self.jabContext.vmID, target) return targetObj