2

我正在尝试从 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。(该系统找不到指定的文件。)

我可以使用 path 、 name和 type打开regedit并查看我想要检索的值。我在这里想念什么?My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Company\ProductServerNameREG_SZ

4

1 回答 1

8

打开密钥,而不是值:

lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                      "SOFTWARE\\Company\\Product",
                      0,
                      KEY_QUERY_VALUE,
                      &hDomainKey);

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

于 2012-12-10T20:53:46.447 回答