次の方法で共有


方法: レジストリにキーを作成する (Visual C#)

現在のユーザーのレジストリに存在する "Names" というキーの下に "Name" と "Isabella" という値のペアを追加する例を次に示します。

使用例

Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Names");
key.SetValue("Name", "Isabella");
key.Close();

コードのコンパイル

  • コードをコピーし、コンソール アプリケーションの Main メソッドに貼り付けます。

  • Names パラメーターをレジストリの HKEY_CURRENT_USER ノードの直下にあるキーの名前に置き換えます。

  • Name パラメーターを Names ノードの直下にある値の名前に置き換えます。

信頼性の高いプログラミング

レジストリの構造を調べて、キーの適切な場所を見つけることができます。たとえば、現在のユーザーの Software キーを開き、会社名のキーを作成できます。その後で、会社名のキーにレジストリ値を追加します。

次の条件では例外が発生する可能性があります。

  • キーの名前が null である場合。

  • レジストリ キーを作成するためのアクセス許可がユーザーにない場合。

  • キー名が 255 文字の制限を超えている場合。

  • キーが閉じている場合。

  • レジストリ キーが読み取り専用の場合。

セキュリティ

ローカル コンピューター (Microsoft.Win32.Registry.LocalMachine) よりもユーザー フォルダー (Microsoft.Win32.Registry.CurrentUser) にデータを書き込む方が安全です。

レジストリの値を作成するときは、その値が既存の値である場合の処理を決めておく必要があります。悪意のあるユーザーによって作成された別のプロセスが既に値を作成し、アクセス権を持っている可能性があります。レジストリ値にデータを設定すると、そのデータを他のプロセスから利用できるようになります。これを回避するために、Overload:Microsoft.Win32.RegistryKey.GetValue メソッドを使用します。このメソッドは、キーがまだ存在しない場合、null を返します。

レジストリ キーがアクセス制御リスト (ACL: Access Control List) によって保護されていても、パスワードなど他人に知られたくないデータをプレーン テキストでレジストリに格納するのは危険です。

参照

関連項目

System.IO

概念

C# プログラミング ガイド

その他の技術情報

ファイル システムとレジストリ (C# プログラミング ガイド)