gpt4 book ai didi

Python 2.6 - 我无法使用 _winreg.SetValueEx() 将大于 0x7fffffff 的双字写入注册表

转载 作者:太空宇宙 更新时间:2023-11-03 23:50:02 29 4
gpt4 key购买 nike

使用 regedit.exe 我在注册表中手动创建了一个名为
HKEY_CURRENT_USER/00_Just_a_Test_Key
并创建了两个双字值
dword_test_1 和 dword_test_2
我正在尝试使用以下程序将一些值写入这两个键

import _winreg

aReg = _winreg.ConnectRegistry(None,_winreg.HKEY_CURRENT_USER)
aKey = _winreg.OpenKey(aReg, r"00_Just_a_Test_Key", 0, _winreg.KEY_WRITE)

_winreg.SetValueEx(aKey,"dword_test_1",0, _winreg.REG_DWORD, 0x0edcba98)
_winreg.SetValueEx(aKey,"dword_test_2",0, _winreg.REG_DWORD, 0xfedcba98)

_winreg.CloseKey(aKey)
_winreg.CloseKey(aReg)

我可以写入第一个 key dword_test_1,但是当我尝试写入第二个 key 时,我收到以下消息

Traceback (most recent call last):
File "D:/src/registry/question.py", line 7, in <module>
_winreg.SetValueEx(aKey,"dword_test_2",0, _winreg.REG_DWORD, 0xfedcba98)
ValueError: Could not convert the data to the specified type.

如何将第二个值 0xfedcba98 或大于 0x7fffffff 的任何值写入双字值


最初我正在编写脚本来打开或关闭“我的文档”图标,方法是写入“0xf0500174”隐藏或“0xf0400174”将图标显示到 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID{450D8FBA-AD25 -11D0-98A8-0800361B1103}\ShellFolder]

最佳答案

函数很可能需要一个 int 在有符号 C 整数的限制内,因此您需要在传递给函数之前减去 0x100000000

是的,理想情况下这将在绑定(bind)中解决。不幸的是,有人放过了这一张。

关于Python 2.6 - 我无法使用 _winreg.SetValueEx() 将大于 0x7fffffff 的双字写入注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381205/

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