ich entwickle gerade ein kleines Programm in Python, das überwachen soll, welche Laufwerke am Computer angeschlossen sind und welche gerade gemounted sind. Um die nötigen Informationen zu bekommen verwende ich HAL. Dafür gibt es auch ein schönes Beispiel unter https://dfwpython.org/repo/Projects/DBUS/dtest.py .
Ich bin jetzt inzwischen soweit, dass ich feststellen kann, wann ein Gerät an den Computer angeschlossen wird oder entfernt wird. Das einzige was noch nicht funktioniert ist, festzustellen, wann ein Gerät gemounted oder ungemounted (arrgh deutsch + englisch ) wird.
Nach allem, was ich bisher rausgefunden habe, müsste der Code folgendermaßen aussehen:
Code: Alles auswählen
class HalDevice(object):
INTERFACE = 'org.freedesktop.Hal.Device'
def __init__(self, udi):
bus = dbus.SystemBus()
self.dev_obj = bus.get_object(HalManager.SERVICE, udi)
self.dev = dbus.Interface(self.dev_obj, HalDevice.INTERFACE)
self.udi = udi
self.dev.connect_to_signal('PropertyModified', self.property_modified)
self.dev.connect_to_signal('Condition', self.condition_occurred)
self.properties = self.HalDevicePropertiesMapping(self)
self.capabilities = self.HalDeviceCapabilitiesSet(self)
def condition_occurred(self, condition, *args, **kwargs):
"""
Notification handler that receives information about the occurrence of
a non-property event.
Normally this is used to signal events that aren't or can't be
expressed in properties, e.g. 'ProcessorOverheating' etc.
"""
print "condition_occurred for " + self.udi
print "condition = " + str(key)
print "args = " + str(args)
print "kwargs = " + str(kwargs)
pass
Falls es nötig ist, kann ich auch noch den gesamten Code des Programms posten.
Danke schon mal im Voraus