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)