1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#でレジストリを読みたい

Last updated at Posted at 2025-08-07

1.はじめに

C#でレジストリを読む機会があったのでやってみた自分用メモ。
以下の記事に感謝します。

2.必要なこと

2-1. Registryクラス

2-1-1.準備1

レジストリを読むので Registry クラスを使います。

コード断片
using Microsoft.Win32;

2-1-2.準備2

レジストリはWindowsにしかない概念なので「Windowsでしか使えませんよ~」と注意喚起します。C#は様々なプラットホームで動く(中間言語)ので、特定の環境(この場合はWindows)でしか動かないプログラムは「そういうモノです」ってプログラムに書いた方が良いでしょう、という話です。

コード断片
using System.Runtime.Versioning;

[assembly: SupportedOSPlatform("windows")]

書かないと警告(CA1416)されます。

3.読みかた

以下のいずれかの方法で読むことができます。どちらを選ぶかは、好みやコーディングルールの範疇だと思います。以下、どのWindowsでもありそうなキーを例にします。

3-1.定義済キーを文字列で指定する方法

HKEY_CURRENT_USER とか HKEY_LOCAL_MACHINE を文字列で書く方法です。

コード断片
string root = "HKEY_CURRENT_USER";
string path = root + "\\" + @"Control Panel\Desktop";
var timeOut = Registry.GetValue(path, "CaretTimeout", 0);

3-2.定義済キーを Registry クラスの定義値(フィールド)に任せる方法

コード断片
using (var regKey = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop"))
{
    if (regKey != null)
    {
        var timeOut = regKey.GetValue("CaretTimeout");
    }
}

読むだけだったら 3-1. の方が楽かもしれないですね。

どんなフィールドが定義されているかは Registry クラスの説明を見てください。一応リンクを再掲します。

4.まとめ(全コード)

Test.cs
using Microsoft.Win32;
using System.Runtime.Versioning;

[assembly: SupportedOSPlatform("windows")]

namespace Test001
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // その1
            {
                string root = "HKEY_CURRENT_USER";
                string path = root + "\\" + @"Control Panel\Desktop";
                var timeOut = Registry.GetValue(path, "CaretTimeout", 0);
            }

            // その2
            using (var regKey = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop"))
            {
                if (regKey != null)
                {
                    var timeOut = regKey.GetValue("CaretTimeout");
                }
            }
        }
    }
}

ありがとうございました。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?