方法: レジストリにキーを作成する (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) によって保護されていても、パスワードなど他人に知られたくないデータをプレーン テキストでレジストリに格納するのは危険です。