_winreg Windows-Registry rekursiv durchgehen
Verfasst: Dienstag 25. April 2006, 10:23
Ich möchte die komplette Windows-Registry rekursiv durchwandern, um z.B. darin zu suchen. Ich suche quasi sowas wie _winreg.walk()
Mir dämmert, dass ich da mit dem _winreg Modul wohl nicht sehr weit kommen werde. Auf die Win32 Erweiterungen wollte ich eigentlich verzichten, wenn es möglich ist... wenn nicht, dann muss ich sie halt einbeziehen, aber ist wieder Neuland.
Es geht schon los beim Verbinden zur Registry, denn da muss ich einen Schlüssel angeben. Wenn ich aber alle durchwandern will, ist Handarbeit gefragt:
Zum einen finde ich es doof, wenn ich statisch alle Keys angebe. Was ist wenn später mit Windows Vista weitere dazu kommen?
Und zum anderen weiß ich nicht, wie ich an die Namen der Subkeys komme, um sie dann zu durchwandern. Nur die Anzahl bekommt man über QueryInfoKey() raus. Values sind ja mittels QueryValue() machbar... aber die Namen der Subkeys nicht.
Jemand einen Ansatz?
Mir dämmert, dass ich da mit dem _winreg Modul wohl nicht sehr weit kommen werde. Auf die Win32 Erweiterungen wollte ich eigentlich verzichten, wenn es möglich ist... wenn nicht, dann muss ich sie halt einbeziehen, aber ist wieder Neuland.
Es geht schon los beim Verbinden zur Registry, denn da muss ich einen Schlüssel angeben. Wenn ich aber alle durchwandern will, ist Handarbeit gefragt:
Code: Alles auswählen
HKEYs = [
_winreg.HKEY_CLASSES_ROOT,
_winreg.HKEY_CURRENT_USER,
_winreg.HKEY_LOCAL_MACHINE,
_winreg.HKEY_USERS,
_winreg.HKEY_CURRENT_CONFIG
]
for HKEY in HKEYs:
regHandler = _winreg.ConnectRegistry(None, HKEY)
Und zum anderen weiß ich nicht, wie ich an die Namen der Subkeys komme, um sie dann zu durchwandern. Nur die Anzahl bekommt man über QueryInfoKey() raus. Values sind ja mittels QueryValue() machbar... aber die Namen der Subkeys nicht.
Jemand einen Ansatz?