我正在尝试从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
。我在这里缺少什么?
答案 0 :(得分:8)
打开密钥,而不是值:
lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Company\\Product",
0,
KEY_QUERY_VALUE,
&hDomainKey);
然后使用RegQueryValueEx()
(或RegGetValue()
)读取该值。