首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何正确检查c++中是否存在注册表项?

如何正确检查c++中是否存在注册表项?
EN

Stack Overflow用户
提问于 2018-06-02 04:23:35
回答 1查看 1.2K关注 0票数 0

我的目标很简单,我只想用C++检查注册表项是否存在。我在网上找不到任何有用的东西。下面的代码编译时没有错误,但我得到的输出是“未打开”,并且我知道我有那个注册表项。

代码语言:javascript
复制
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
using namespace std;
int main(){
    HKEY hKey;
    if(RegOpenKey(HKEY_LOCAL_MACHINE,TEXT("Software\\Oracle\\VirtualBox"),&hKey) == ERROR_SUCCESS)    {

        cout << "Opened";
    }
    else
    {
        cout << "not opened";
    }
    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-02 05:25:53

您拥有的代码很好(尽管您应该改用RegOpenKeyEx(),因为RegOpenKey()已被弃用,并仅用于与16位代码的向后兼容)。你只需要注意返回值。如果RegOpenKey/Ex()返回ERROR_PATH_NOT_FOUNDERROR_FILE_NOT_FOUND,则该键不存在。任何其他返回值都表示键存在,如果返回值为ERROR_SUCCESS,则需要关闭打开的键,否则,即使键存在,也无法打开它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50650559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档