首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 登錄表操作全攻略(三):判斷鍵值與子項是否存在

     編輯:關於C語言

前言

在操作登錄表前,常需先檢查特定子項或鍵值是否存在,以避免例外或覆寫錯誤資料。本文提供兩個實用方法。

一、判斷子項是否存在

透過 RegistryKey.GetSubKeyNames() 取得所有子項名稱陣列,逐一比對。

private bool IsRegeditItemExist()
{
    string[] subkeyNames;
    RegistryKey hkml = Registry.LocalMachine;
    RegistryKey software = hkml.OpenSubKey("SOFTWARE");
    subkeyNames = software.GetSubKeyNames();

    foreach (string keyName in subkeyNames)
    {
        if (keyName == "test")
        {
            hkml.Close();
            return true;
        }
    }
    hkml.Close();
    return false;
}

二、判斷鍵值是否存在

開啟指定子項(此處為 SOFTWARE\\test),取得 GetValueNames() 比對鍵值名稱。

private bool IsRegeditKeyExit()
{
    string[] subkeyNames;
    RegistryKey hkml = Registry.LocalMachine;
    RegistryKey software = hkml.OpenSubKey("SOFTWARE\\test");
    subkeyNames = software.GetValueNames();

    foreach (string keyName in subkeyNames)
    {
        if (keyName == "test")
        {
            hkml.Close();
            return true;
        }
    }
    hkml.Close();
    return false;
}

注意事項

  • 操作完成務必呼叫 Close() 釋放資源。
  • 若需寫入,OpenSubKey 第二參數需傳 true。
  • 本系列範例均在 HKEY_LOCAL_MACHINE 分支下測試,實際部署請注意權限(需管理員權限)。

系列總結

至此,C# 操作登錄表的核心功能(建立/開啟/刪除子項、建立/讀取/刪除鍵值、存在性判斷)已完整介紹。掌握這些基礎,即可應對大多數登錄表應用場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved