gpt4 book ai didi

windows - 64 位 Windows 注册表 - 为什么 %Program Files% 转换为 %Program Files(x86)%?

转载 作者:可可西里 更新时间:2023-11-01 09:26:20 26 4
gpt4 key购买 nike

运行如下代码后,在32位进程中,数据%ProgramFiles%自动转换。

HKEY hSubKey;
DWORD dwState;
RegCreateKeyEx(HKEY_CURRENT_USER, L"TestKey", NULL, NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey, &dwState);
std::wstring data = L"%ProgramFiles%";
RegSetValueEx(hSubKey, L"TestValue", NULL, REG_EXPAND_SZ,
(BYTE*)data.c_str(), (DWORD)(data.size() * sizeof(WCHAR)) + sizeof(WCHAR));

结果
enter image description here<-我勒个去。谁扩充?

我不想转换数据。 -但我必须使用 REG_EXPAND_SZ 类型。
我该怎么做?

最佳答案

这称为注册表值重定向,它是 WOW64's Registry Virtualization 的一部分.你不能在 Server 2003 或 Vista 上禁用它,但你可以在 Win7 中禁用它(尽管我记不起这个标志了)。为什么要编写从 32 位应用程序指向 64 位程序文件的 key ? (这个问题有合法的答案,我想更多地弄清楚这个场景)

关于windows - 64 位 Windows 注册表 - 为什么 %Program Files% 转换为 %Program Files(x86)%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4789485/

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