在Python中检查Windows注册表项是否已存在

Bor*_*aka 3 python pywin32 win32com

得到了以下代码:

    aReg = ConnectRegistry(None,HKEY_CURRENT_USER)
aKey = OpenKey(aReg, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE)
try:   
   SetValueEx(aKey,registry_key_name,0, REG_SZ, r"" + folder + "\" + file_name) 
except EnvironmentError:                                          
    print "Encountered problems writing into the Registry..."
CloseKey(aKey)
CloseKey(aReg)
Run Code Online (Sandbox Code Playgroud)

我想添加一些检查(如果还不存在),所以仅在没有这样的密钥的情况下添加它

小智 5

这个问题,我猜最好的选择是假定注册表项不存在,使用_winreg.OpenKeyWindowsError优雅地处理和处理异常。

from _winreg import *
exists = True
aReg = ConnectRegistry(None,HKEY_CURRENT_USER)
try:
    aKey = OpenKey(aReg, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE)
except WindowsError:
    exists = False

try:
    if not exists:
        SetValueEx(aKey,registry_key_name,0, REG_SZ, r"" + folder + "\" + file_name) 
except EnvironmentError:                                          
    print "Encountered problems writing into the Registry..."

CloseKey(aKey)
CloseKey(aReg)
Run Code Online (Sandbox Code Playgroud)