我正在尝试从 Windows 服务器读取注册表项,但无论是否使用前导斜杠,我似乎都无法使其正常工作。如果我尝试:
lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "\\SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey);
它给我错误 161,即 ERROR_BAD_PATHNAME。 (指定的路径无效。)
好的,所以这样试试:
lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey);
我收到错误 2,ERROR_FILE_NOT_FOUND。 (系统找不到指定的文件。)
我可以打开 regedit
并查看我想要检索的值,路径为 My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Company\Product
,名称为 ServerName
,然后键入 REG_SZ
。我在这里缺少什么?
最佳答案
打开键,而不是值:
lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Company\\Product",
0,
KEY_QUERY_VALUE,
&hDomainKey);
然后使用 RegQueryValueEx()
读取值(或 RegGetValue()
)。
关于c++ - RegOpenKeyEx 给出错误 2 或错误 161,两种方式均失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809003/