1.序
用python实现在注册表查找某个值,是否存在,若不存在,就增加某个值
2.源码
import winreg
import os
import sys
def check_registry_value_exists(key_path, value_name):
try:
# 尝试打开注册表键
with winreg.OpenKey(winreg.HKEY_CURRENT_USER, key_path, 0, winreg.KEY_READ) as key:
# 尝试读取值
winreg.QueryValueEx(key, value_name)
return True
except FileNotFoundError:
# 如果键不存在,返回False
return False
except OSError:
# 如果值不存在,返回False
return False
def add_to_startup(name,file_path=""):
if file_path == "":
file_path = os.path.realpath(sys.argv[0])
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Run', 0, winreg.KEY_SET_VALUE)
winreg.SetValueEx(key, name, 0, winreg.REG_SZ, file_path)
winreg.CloseKey(key)
# 使用示例
key_path = r"Software\Microsoft\Windows\CurrentVersion\Run"
value_name = "myApp"
exists = check_registry_value_exists(key_path, value_name)
#print(f"The value '{value_name}' exists in the registry: {exists}")
if not exists:
print('need to add')
add_to_startup(value_name)