1. 程式人生 > 實用技巧 >.NET 5 中操作登錄檔方法

.NET 5 中操作登錄檔方法

關於登錄檔

登錄檔是儲存裝置,用於提供有關應用程式、使用者和預設系統設定的資訊。 例如,應用程式可以使用登錄檔儲存需要在應用程式關閉後保留的資訊,並在重新載入應用程式時訪問相同的資訊。 例如,你可以儲存顏色首選項、螢幕位置或視窗大小。 可以通過將資訊儲存在登錄檔中的不同位置來控制每個使用者的此資料。

說明

C#中操作登錄檔,我們需要使用Registry類,提供表示 Windows 登錄檔中的根項的 RegistryKey 物件,並提供訪問項/值對的 static 方法。
名稱空間: Microsoft.Win32
程式集: Microsoft.Win32.Registry.dll

public static class Registry

在.Net Framework x.應用當中,我們只需要新增Microsoft.Win32即可。

using Microsoft.Win32;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            //在儲存有關使用者首選項的資訊下面建立了一個子項TestKey
            RegistryKey testKey = Registry.CurrentUser.CreateSubKey("TestKey");
        }
    }
}

而在.NET 5當中,該功能不再預設提供,需要單獨在NuGet安裝,如下所示:

關於Registry類的使用範圍如下:

RegistryKey

RegistryKey 表示 Windows 登錄檔中的項級節點。Registry 靜態類中提供了多種公開RegistryKey。

欄位

  • CurrentUser 儲存有關使用者首選項的資訊。
  • LocalMachine 儲存本地計算機的配置資訊。
  • ClassesRoot 儲存有關型別 (和類) 及其屬性的資訊。
  • Users 儲存有關預設使用者配置的資訊。
  • PerformanceData 儲存軟體元件的效能資訊。
  • CurrentConfig 儲存非使用者特定的硬體資訊。
  • DynData 儲存動態資料。

方法

Registry類還包含 static GetValue SetValue 用於設定和檢索登錄檔項中的值的方法。 這些方法在每次使用登錄檔項時都將其開啟和關閉,因此 RegistryKey 當你訪問大量值時,它們不會在類中執行和類似的方法。

建立/讀取/刪除 登錄檔鍵

using Microsoft.Win32;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立一個TestKey登錄檔鍵值
            RegistryKey testKey = Registry.CurrentUser.CreateSubKey("TestKey");

            //建立子項
            var nameKey = testKey.CreateSubKey("Name");

            //建立鍵值
            nameKey.SetValue("Id", 123);
            nameKey.SetValue("Language", "China");


            //讀取子項當中的值
            var readKey = testKey.OpenSubKey("Name");

            //idString=123
            var idString = readKey.GetValue("Id").ToString();

            //刪除子項
            testKey.DeleteSubKey("Name");
        }
    }
}