首页  >  文章  >  后端开发  >  如何检索并确定 Windows 中注册表项是否存在?

如何检索并确定 Windows 中注册表项是否存在?

Patricia Arquette
Patricia Arquette原创
2024-10-31 13:34:02413浏览

How Can I Retrieve and Determine the Existence of Registry Keys in Windows?

从 Windows 注册表中检索值

确定注册表项是否存在

要安全地确定注册表项是否存在,请使用 RegOpenKeyExW带有 KEY_READ 标志的函数。如果函数返回ERROR_SUCCESS,则该键存在;如果返回 ERROR_FILE_NOT_FOUND,则该密钥不存在。

检索密钥的值

要以编程方式获取注册表密钥的值,请使用以下 API:

  • GetStringRegKey: 检索字符串值。
  • GetDWORDRegKey: 检索 DWORD 值(32 位整数)。
  • GetBoolRegKey: 检索布尔值(True 或 False)。

这些函数采用键句柄和要检索的值的名称作为参数。它们返回提供的引用参数中的值。

示例代码

以下示例代码演示了这些函数的用法:

<code class="cpp">#include <Windows.h>

int main()
{
    HKEY hKey;
    LONG lRes = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\Perl", 0, KEY_READ, &hKey);

    if (lRes == ERROR_SUCCESS)
    {
        std::wstring strBinDir;
        GetStringRegKey(hKey, L"BinDir", strBinDir, L"bad");

        DWORD dwValue;
        GetDWORDRegKey(hKey, L"PerlVersion", dwValue, 0);

        bool bEnabled;
        GetBoolRegKey(hKey, L"Enabled", bEnabled, false);
    }

    RegCloseKey(hKey);
    return 0;
}</code>

在此示例中,GetStringRegKey函数检索“BinDir”字符串键的值,GetDWORDRegKey 检索“PerlVersion”DWORD 键的值,GetBoolRegKey 检索“Enabled”布尔键的值。

以上是如何检索并确定 Windows 中注册表项是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn