RegGetValue在当前用户下找不到名称

RegGetValue cannot find name under current user?

本文关键字:找不到 用户 RegGetValue      更新时间:2023-10-16

我正在测试这个函数::RegGetValue。下面的代码返回成功。

DWORD data_size = 0;
LONG result = ::RegGetValue(HKEY_LOCAL_MACHINE,
_T("SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE"),
_T("Path"),
RRF_RT_REG_SZ, 
NULL, NULL,
&data_size);

但如果我试图在当前用户下找到不同的条目,即使该条目确实存在,它也会失败。

DWORD data_size = 0;
LONG result = ::RegGetValue(HKEY_CURRENT_USER,
_T("Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"),
_T("OUTLOOK.EXE"),
RRF_RT_REG_SZ, 
NULL, NULL,
&data_size);

根据MSDN文档,FEATURE_BROWSER_EMULATION密钥中的所有值都是DWORD值,而不是字符串值:

互联网功能控制(B..C(:浏览器仿真

通过指定RRF_RT_REG_SZ,您就是在告诉RegGetValue()只读取String值。从App Paths键读取"Path"值时,这是有道理的,但从FEATURE_BROWSER_EMULATION键读取时,需要指定RRF_RT_REG_DWORD