def run(self): if len(self.apps) == 0: return print "%s " % self.text.message, for app in self.apps[:-1]: print "%s, " % app, print self.apps[-1] while not self.abort: process = GetProcessDict() for app in self.apps: if app in process.itervalues(): if not self.running[app]: eg.TriggerEvent(self.text.launched + "." + splitext(app)[0], prefix=self.text.prefix) self.running[app] = True else: if self.running[app]: eg.TriggerEvent(self.text.terminated + "." + splitext(app)[0], prefix=self.text.prefix) self.running[app] = False if self.abort: break self.threadFlag.wait(self.period) self.threadFlag.clear()
def __start__(self, apps, period): self.apps = apps self.period = period if apps: process = GetProcessDict() self.running = dict([(app, app in process.itervalues()) for app in apps]) print "%s " % self.text.message, for app in apps[:-1]: print "%s, " % app, print apps[-1] self.task = eg.scheduler.AddTask(period, self.AppObserver)
def AppObserver(self): self.task = 0 process = GetProcessDict() for app in self.apps: if app in process.itervalues(): if not self.running[app]: eg.TriggerEvent(self.text.launched+"."+splitext(app)[0], prefix = self.text.prefix) self.running[app] = True else: if self.running[app]: eg.TriggerEvent(self.text.terminated+"."+splitext(app)[0], prefix = self.text.prefix) self.running[app] = False if self.task is not None: self.task = eg.scheduler.AddTask(self.period, self.AppObserver)
def ThreadLoop(self, stopThreadEvent): oldProcesses = GetProcessDict() oldPids = set(oldProcesses.iterkeys()) while True: newProcesses = GetProcessDict() newPids = set(newProcesses.iterkeys()) for pid in newPids.difference(oldPids): name = splitext(newProcesses[pid])[0] eg.TriggerEvent("Created." + name, prefix="Process") for pid in oldPids.difference(newPids): name = splitext(oldProcesses[pid])[0] eg.TriggerEvent("Destroyed." + name, prefix="Process") oldProcesses = newProcesses oldPids = newPids sleep(0.1)
def ThreadLoop(self): while self.event.isSet(): pass oldProcesses = GetProcessDict() oldPids = set(oldProcesses.iterkeys()) while not self.event.isSet(): newProcesses = GetProcessDict() newPids = set(newProcesses.iterkeys()) for pid in newPids.difference(oldPids): name = splitext(newProcesses[pid])[0] eg.TriggerEvent("Created." + name, prefix="Process") for pid in oldPids.difference(newPids): name = splitext(oldProcesses[pid])[0] eg.TriggerEvent("Destroyed." + name, prefix="Process") oldProcesses = newProcesses oldPids = newPids self.event.wait(0.1) self.event.clear()
def ComActive(self): if u'iTunes.exe' in GetProcessDict().values(): if not self.workerThread: self.TriggerEvent("Running") self.StartThread() return True elif self.workerThread: self.StopThread() self.TriggerEvent("NotRunning") eg.PrintNotice("iTunes is not running") return False
def ThreadLoop(self): while self.event.isSet(): pass oldProcesses = GetProcessDict() oldPids = set(oldProcesses.keys()) while not self.event.isSet(): newProcesses = GetProcessDict() newPids = set(newProcesses.keys()) for pid in newPids.difference(oldPids): name = splitext(newProcesses[pid])[0] eg.TriggerEvent("Created." + name, prefix="Process") for pid in oldPids.difference(newPids): name = splitext(oldProcesses[pid])[0] eg.TriggerEvent("Destroyed." + name, prefix="Process") oldProcesses = newProcesses oldPids = newPids self.event.wait(0.1) self.event.clear()