大家好!为什么注册表值在Windows上的Python 3中的winreg中不匹配?
我正在编写小型python3项目。在我的代码中,有一个函数可以检查用户是否安装了特定的DirectX版本。
该功能如下。
def check_directx():
try:
reg_obj = OpenKey(HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\DirectX')
except FileNotFoundError:
return False
dx_value_str = EnumValue(reg_obj, 1)[1][0:4]
CloseKey(reg_obj)
if dx_value_str != "4.09":
return False
return True
我想测试这个功能,所以我在HKEY_LOCAL_MACHINE \ SOFTWARE改变了原来的版本值(4.09.00.0904)到4.07.00.0904 \微软\的DirectX。但它没有奏效。变量dx_value_str的值仍然是4.09.00.0904。
我搜索了注册表,发现有相同的密钥,值为HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ DirectX。我改变了这里的版本值,变量dx_value_str的值最后被改变了。如您所见,我在'SOFTWARE \ Microsoft \ DirectX'中打开了该键,但它在'SOFTWARE \ Wow6432Node \ Microsoft \ DirectX'中带来了该值。
这种情况可以吗?或者我的代码有问题?
请帮帮我!