ich möchte etwas in die windows registry schreiben. dafür benutze ich folgendene klasse:
Code: Alles auswählen
import _winreg as wreg
import cPickle as pickle
class WindowsRegistry:
def __init__(self):
"""
handle registry access
"""
try:
self.key = wreg.OpenKey(wreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Nls")
except:
self.key = wreg.CreateKey(wreg.HKEY_LOCALMACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Nls")
def set(self, name, value):
" set value in registry "
wreg.SetValue(self.key, name, wreg.REG_SZ, str(value))
def pset(self, name, value):
" set using pickle "
self.set(name, pickle.dumps(value))
def get(self, name):
" get value out of registry "
return wreg.QueryValue(self.key, name)
def pget(self, name):
" get using pickle "
return pickle.loads(self.get(name))
def close(self):
" close the key finally "
self.key.Close()
def __del__(self):
self.close()
mein code sieht so aus:
Code: Alles auswählen
r = registry.WindowsRegistry()
r.set("snsr", "test")
einen key in HKEY_LOCALMACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Nls,
mit dem namen "snsr" und der value "test".
was ich bekomme:
diesen ordner: HKEY_LOCALMACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Nls\snsr, in dem sich ein key mit dem namen "standard" und dem value "test" befindet.
wie kann ich dieses problem umgehen?
hab jetzt wirklich schon alles ausprobiert und zähle auf eure hilfe - danke im vorraus!