RegOpenKeyEx给出错误2或错误161,两种方式都失败

Joe*_*e M 1 c++ registry winapi windows-server

我试图从Windows服务器读取一个注册表项,我似乎无法使用或不使用前导斜杠.如果我尝试:

lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "\\SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey);
Run Code Online (Sandbox Code Playgroud)

它给出了错误161,即ERROR_BAD_PATHNAME.(指定的路径无效.)

好的,所以这样试试:

lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey);
Run Code Online (Sandbox Code Playgroud)

我收到错误2,ERROR_FILE_NOT_FOUND.(该系统找不到指定的文件.)

我可以打开regedit并查看我想要检索的值,包括路径My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Company\Product,名称ServerName和类型REG_SZ.我在这里错过了什么?

hmj*_*mjd 8

打开钥匙,而不是价值:

lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                      "SOFTWARE\\Company\\Product",
                      0,
                      KEY_QUERY_VALUE,
                      &hDomainKey);
Run Code Online (Sandbox Code Playgroud)

然后使用RegQueryValueEx()(或RegGetValue())读取值.