首頁  >  文章  >  後端開發  >  如何檢索並確定 Windows 中登錄項目是否存在?

如何檢索並確定 Windows 中登錄項目是否存在?

Patricia Arquette
Patricia Arquette原創
2024-10-31 13:34:02479瀏覽

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:
  • 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