def Execute(self): #start = clock() eventString = self.string if eventString in eg.notificationHandlers: for listener in eg.notificationHandlers[eventString].listeners: if listener(self) == True: return eg.event = self eg.eventString = eventString eg.EventString = eventString # eg.EventString is deprecated get = eg.eventTable.get eventHandlerList = [] eventHandlerList += get(eventString, []) #if self.prefix != "Keyboard": eventHandlerList += get(self.suffix, []) key2 = self.suffix.rsplit(".", 1)[-1] if self.suffix != key2: eventHandlerList += get(key2, []) eventHandlerList += get('*', []) key1 = eventString.rsplit(".", 1)[0] + '.*' eventHandlerList += get(key1, []) key2 = eventString.split(".", 1)[0] + '.*' if key1 != key2: eventHandlerList += get(key2, []) activeHandlers = set() for eventHandler in eventHandlerList: obj = eventHandler while obj: if not obj.isEnabled: break obj = obj.parent else: activeHandlers.add(eventHandler) if config.onlyLogAssigned and len(activeHandlers) == 0: self.SetStarted() return # show the event in the logger LogEvent(self) activeHandlers = sorted(activeHandlers, key=GetItemPath) eg.SetProcessingState(2, self) for eventHandler in activeHandlers: try: eg.programCounter = (eventHandler.parent, None) eg.indent = 1 RunProgram() except: eg.PrintTraceback() if self.skipEvent: break self.SetStarted() eg.SetProcessingState(1, self)
def ExecuteTreeItem(obj, event): eg.SetProcessingState(2, event) eg.event = event if isinstance(obj, eg.MacroItem): eg.programCounter = (obj, 0) eg.RunProgram() elif isinstance(obj, eg.ActionItem): obj.Execute() eg.SetProcessingState(1, event)
def Execute(self): #start = clock() eventString = self.string if eventString in eg.notificationHandlers: for listener in eg.notificationHandlers[eventString].listeners: if listener(self) is True: return eg.event = self eg.eventString = eventString eventHandlerList = [] for key, val in eg.eventTable.iteritems(): if ( eventString == key or (("*" in key or "?" in key) and fnmatchcase(eventString, key)) ): eventHandlerList += val activeHandlers = set() for eventHandler in eventHandlerList: obj = eventHandler while obj: if not obj.isEnabled: break obj = obj.parent else: activeHandlers.add(eventHandler) for listener in eg.log.eventListeners: listener.LogEvent(self) if config.onlyLogAssigned and len(activeHandlers) == 0: self.SetStarted() return # show the event in the logger LogEvent(self) activeHandlers = sorted(activeHandlers, key=GetItemPath) eg.SetProcessingState(2, self) for eventHandler in activeHandlers: try: eg.programCounter = (eventHandler.parent, None) eg.indent = 1 RunProgram() except: eg.PrintTraceback() if self.skipEvent: break self.SetStarted() eg.SetProcessingState(1, self)
def SetShouldEnd(self): if not self.shouldEnd.isSet(): self.shouldEnd.set() eg.SetProcessingState(0, self) actionThread.Call(self.DoUpFuncs) self.__join()
def do(): self.time = clock() self.result = None self.lastFoundWindows = [] self.stopExecutionFlag = False self.indent = 0 self.programReturnStack = [] self.programCounter = None self.isEnded = False self.payload = self.payloads.pop(0) self.source = self.sources.pop(0) self.percent_run = 0.0 if self.string in eg.notificationHandlers: for l in eg.notificationHandlers[self.string].listeners: if l(self) is True: return eventHandlerList = [] for key, val in eg.eventTable.iteritems(): if ( self.event.string == key or ( ("*" in key or "?" in key) and fnmatchcase(self.string, key) ) ): eventHandlerList += val activeHandlers = set() for eventHandler in eventHandlerList: obj = eventHandler while obj: if not obj.isEnabled: break obj = obj.parent else: activeHandlers.add(eventHandler) for listener in eg.log.eventListeners: listener.LogEvent(self) if config.onlyLogAssigned and len(activeHandlers) == 0: self.SetStarted() return # show the event in the logger LogEvent(self) activeHandlers = sorted(activeHandlers, key=GetItemPath) active_handler_count = float(len(activeHandlers)) while activeHandlers: completed = active_handler_count - len(activeHandlers) completed = (float(completed) / active_handler_count) * 100.0 if eg.mainFrame is not None: eg.mainFrame.logCtrl.SetEventMeter(completed) eventHandler = activeHandlers.pop(0) try: self.programCounter = (eventHandler.parent, None) self.indent = 1 RunProgram() except: eg.PrintTraceback() if self.skipEvent: break if eg.mainFrame is not None: eg.mainFrame.logCtrl.SetEventMeter(100.0) self.SetStarted() eg.SetProcessingState(1, self)