gpt4 book ai didi

python - 使用 _winreg 编辑 REG_BINARY

转载 作者:可可西里 更新时间:2023-11-01 10:23:34 24 4
gpt4 key购买 nike

我正在尝试制作一个简单的程序,它可以使用 _winreg 在 Windows 中启用或禁用代理设置。为此,我需要更改注册表中的 2 个设置。第一个是 ProxyEnable,它是一个 REG_DWORD,第二个是 DefaultConnectionSettings,它是一个 REG_BINARY。我可以访问这两个键,并且对 dword 进行更改没有问题。我遇到问题的地方是第二个键,我可以打开并查询它,但我不确定如何更改它。这是一个字符串,所以我想我也许可以将它切片并添加我想要的位,但原始值是 '\x03' 我需要将其更改为 '\x09' 输入时进入 python 变成 '\t' 因为我猜它是转义的'水平标签'。我是 Python 的新手,所以我意识到我可能以完全错误的方式执行此操作,如有任何建议,我们将不胜感激。

key = wreg.OpenKey(wreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Connections",0, wreg.KEY_ALL_ACCESS)

这是我需要帮助的关键,我可以打开并阅读它,但我不知道如何正确使用它。我基本上只需要将第 9 个字节从 03 更改为 09,然后在我想重新启用代理时返回到 03。

最佳答案

既然您打开了注册表项,接下来您需要获取 DefaultConnectionSettings 注册表值:

(value, regtype) = wreg.QueryValueEx(key, "DefaultConnectionSettings")

您现在需要更改值中的单个字节。不幸的是,该值将表示为 Python 字符串,而在 Python 中,字符串是不可变的。所以你需要创建一个新的字符串,改变一个字节:

if regtype == wreg.REG_BINARY:
value = value[:8] + chr(0x09) + value[9:]

最后将新值写回注册表:

    wreg.SetValueEx(key, "DefaultConnectionSettings", None, regtype, value)

关于python - 使用 _winreg 编辑 REG_BINARY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24790909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com