python 使用win32api操作注册表

打开注册表
win32api.RegOpenKey(hKey, subKey, reserved=0, samDesired=win32con.KEY_READ)

    hKey:一个已打开的注册表键的句柄,或者是一个预定义的根键常量(如win32con.HKEY_LOCAL_MACHINE)。
    subKey:要打开的子键的名称,以字符串形式给出。
    reserved:保留,通常设置为0。
    samDesired:请求的访问权限。

关于samDesired参数,它指定了请求的访问权限。win32con.KEY_ALL_ACCESS是最高级别的权限,它允许你进行所有的注册表操作,包括读取、写入、删除等。然而,为了安全考虑,通常不建议使用KEY_ALL_ACCESS,除非你确实需要这些权限,并且理解它们带来的安全风险。

除了win32con.KEY_ALL_ACCESS之外,win32con模块还提供了其他一些常用的注册表权限常量:

    win32con.KEY_READ:允许读取键和值。
    win32con.KEY_WRITE:允许设置值,创建子键,枚举子键和值。
    win32con.KEY_EXECUTE:与KEY_READ相同,但不包括枚举子键的权限。
    win32con.KEY_CREATE_LINK:在Windows Vista及更高版本中,允许创建符号链接。
    win32con.KEY_CREATE_SUB_KEY:允许在键下创建新的子键。
    win32con.KEY_ENUMERATE_SUB_KEYS:允许枚举键下的子键。
    win32con.KEY_NOTIFY:允许请求更改通知。
    win32con.KEY_SET_VALUE:允许设置值。

通常,你可以通过组合这些常量来请求所需的权限。例如,如果你想要读取和写入权限,你可以使用win32con.KEY_READ | win32con.KEY_WRITE。

另外,请确保在不再需要注册表键句柄时关闭它,以避免资源泄漏。你可以使用win32api.RegCloseKey(key)来做到这一点。
读取注册表项的值
import win32api
import win32con

# 打开注册表项
key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, win32con.KEY_READ)

# 读取键值
value, type = win32api.RegQueryValueEx(key, "PythonScript")

print("键值:", value)
print("类型:", type)

参数:
    key: 注册表键的句柄,通常通过win32api.RegOpenKeyEx或win32api.RegCreateKeyEx获得。
    value_name: 要设置的值的名称。如果为空(""),则设置该键的默认(未命名)值。
    reserved: 通常设置为0。这是保留参数,通常不需要更改。
    type: 值的类型。在win32con模块中定义了许多这样的类型。
    data: 要设置的值的数据。
    
注册表值类型:
	win32con.REG_BINARY: 二进制数据。
	win32con.REG_DWORD: 32位数字(在Python中,你可能需要将其转换为ctypes.c_uint32或int)。
	win32con.REG_DWORD_BIG_ENDIAN: 大端序的32位数字(不常用)。
	win32con.REG_EXPAND_SZ: 可扩展的字符串(包含环境变量引用的字符串)。
	win32con.REG_MULTI_SZ: 多个以null分隔的字符串组成的字符串数组。
	win32con.REG_QWORD: 64位数字(在Python中,你可能需要将其转换为ctypes.c_uint64或int)。
	win32con.REG_NONE: 没有定义的类型(不常用)。
修改注册表项的值
import win32api
import win32con

# 打开注册表项
key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, win32con.KEY_WRITE)

# 修改键值
win32api.RegSetValueEx(key, "PythonScript", 0, win32con.REG_SZ, "C:\\path\\to\\script.py")

# 关闭注册表项
win32api.RegCloseKey(key)
删除注册表项
import win32api
import win32con

# 删除注册表项
win32api.RegDeleteKey(win32con.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run\\PythonScript")

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值