Wichtig ist eben, dass die Event-Erkennung über C läuft, weil z.B. WMI hier zu lahm ist und einige Sachen übersieht (wegen Polling), v.a. wenn der Rechner gerade ausgelastet ist.
Meinem C-Modul möchte ich noch folgende Methoden auf den weg geben:
- - load(): lädt benötigte Bibliotheken
- unload(): entlädt diese wieder
- start(): aktiviert die Überwachung, d.h. erkannte Events werden in die Queue eingetragen
- stop(): deaktiviert die Überwachung, d.h. erkannte Events werden ignoriert
- run(): die Überwachung selbst
Daher wollte ich nachfragen, ob mir jemand unter die Arme greifen könnte und für das folgende Beispiel ein Code-Gerüst in C vorschlagen würde.
In Python würde ich mir das so vorstellen:
Code: Alles auswählen
import Queue
class MyCModule(Queue.Queue):
"""a Python `Queue.Queue()` like object in C"""
__loaded = False
"""status if loaded or not"""
__active = False
"""status if active or not"""
def __init__(self):
self.load()
def load(self):
"""loads some libraries"""
try:
# C code here to load libraries
self.__loaded = True
return True
except:
return False
def unload(self):
"""unloads libraries"""
try:
# C code here to unload libraries
self.__loaded = False
return True
except:
return False
def start(self):
self.__active = True
def stop(self):
self.__active = False
def run(self):
"""fills the queue (if active)"""
if self.__active:
# C code here to fill the queue
pass