我开发了一个python脚本,其中我有一个设置窗口,其中有选择安装软件的路径的选项。当单击设置窗口的确定按钮时,我想要将所有选定的路径写入注册表,并在设置窗口再次打开时读取相同的内容。 我的代码如下所示。python脚本读取和写入注册表的路径
def OnOk(self, event):
data1=self.field1.GetValue() #path selected in setting window
aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)
keyVal=OpenKey(aReg,r"SOFTWARE\my path to\Registry", 0,KEY_WRITE)
try:
SetValueEx(keyVal,"Log file",0,REG_SZ,data1)
except EnvironmentError:
pass
CloseKey(keyVal)
CloseKey(aReg)
我得到一个错误象下面这样:
Traceback (most recent call last):
File "D:\PROJECT\project.py", line 305, in OnOk
keyVal=OpenKey(aReg,r"SOFTWARE\my path to\Registry", 0,KEY_WRITE)
WindowsError: [Error 5] Access is denied
而且从注册表中读取,保存的注册表在设定window.I显示了以下code.Though其工作尝试,但不满意我编程的方式。帮助我解决更好的解决方案
key = OpenKey(HKEY_CURRENT_USER, r'Software\my path to\Registry', 0, KEY_READ)
for i in range(4):
try:
n,v,t = EnumValue(key,i)
if i==0:
self.field2.SetValue(v)
elif i==1:
self.field3.SetValue(v)
elif i==2:
self.field4.SetValue(v)
elif i==3:
self.field1.SetValue(v)
except EnvironmentError:
pass
CloseKey(key)
是的,我使用的是来宾用户,所以我没有得到它的权利。我将HKEY_LOCAL_MACHINE更改为HKEY_CURRENT_USER,现在工作正常。 – Aramanethota 2013-02-28 06:23:04
IS HKEY_CURRENT_USER是否适用于管理员和其他用户帐户? – Aramanethota 2013-02-28 06:26:33
如果访客用户可以访问注册表中的密钥,那么Admin也是如此。 – 2013-02-28 06:30:20