2016-12-16 66 views
0

我想更改注册表的值。我尝试了以下,但它不起作用。我不知道我的代码中存在什么问题!在Python中使用注册表

KeyVal = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{B3D42F82-AE5B-4AE1-939C-E958D13732D2}Machine\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}\Deny_Execute' 

try: 
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,KeyVal,0, winreg.KEY_ALL_ACCESS) 
    key = winreg.CreateKey(winreg.HKEY_CURRENT_USER,KeyVal) 
    winreg.SetValueEx(key,"Deny_Execute",0,winreg.REG_DWORD,0) 
    winreg.CloseKey(key) 
except: 
    pass 

回答

0

第一大问题是,你的反模式:

try: 
    <some code> 
except: 
    pass 

,以便在出现任何错误,你不知道的错误。所以,你必须通过打印错误消息,妥善处理异常,例如

try: 
    <some code> 
except Exception as e: 
    print(str(e)) 

你这里面临的真正问题是,你必须运行以高特权脚本(如管理员),因为你”请求对系统注册表项的写权限。

但是由于捕捉所有异常的方式不正确,您看不到“访问被拒绝”错误。