2016-12-16 67 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)) 

你這裏面臨的真正問題是,你必須運行以高特權腳本(如管理員),因爲你」請求對系統註冊表項的寫權限。

但是由於捕捉所有異常的方式不正確,您看不到「訪問被拒絕」錯誤。