次の方法で共有


方法: Visual Basic でレジストリ キーを作成し、その値を設定する

My.Computer.Registry オブジェクトの CreateSubKey メソッドを使用して、レジストリ キーを作成できます。

プロシージャ

レジストリ キーを作成するには

  • CreateSubKeyメソッドを使用して、キーを配置するハイブとキーの名前を指定します。 パラメーター Subkey では、大文字と小文字は区別されません。 この例では、HKEY_CURRENT_USERの下にレジストリ キー MyTestKey を作成します。

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    

レジストリ キーを作成し、その中に値を設定するには

  1. CreateSubkeyメソッドを使用して、キーを配置するハイブとキーの名前を指定します。 この例では、HKEY_CURRENT_USERの下にレジストリ キー MyTestKey を作成します。

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    
  2. SetValue メソッドを使用して値を設定します。 次の使用例は、文字列値を設定します。 "MyTestKeyValue" を "This is a test value" に設定します。

    My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
      "MyTestKeyValue", "This is a test value.")
    

この例では、HKEY_CURRENT_USERの下にレジストリ キー MyTestKey を作成し、文字列値 MyTestKeyValueThis is a test value に設定します。

My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value.
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
  "MyTestKeyValue", "This is a test value.")

堅牢なプログラミング

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

Web アプリケーションからレジストリを読み取るとき、現在のユーザーは Web アプリケーションに実装されている認証と偽装に依存します。

ローカル コンピューター (LocalMachine) ではなく、ユーザー フォルダー (CurrentUser) にデータを書き込む方が安全です。

レジストリ値を作成するときは、その値が既に存在する場合の処理を決定する必要があります。 別のプロセス (おそらく悪意のあるプロセス) は、既に値を作成し、それにアクセスできる可能性があります。 レジストリ値にデータを格納すると、データは他のプロセスで使用できます。 これを回避するには、 GetValue メソッドを使用します。 キーがまだ存在しない場合は、 Nothing を返します。

レジストリ キーが ACL (アクセス制御リスト) によって保護されている場合でも、パスワードなどのシークレットをプレーン テキストとしてレジストリに格納することは安全ではありません。

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

.NET Framework のセキュリティ

このプロセスを実行するには、アセンブリには、 RegistryPermission クラスによって付与された特権レベルが必要です。 部分的な信頼コンテキストで実行している場合、権限が不十分なため、プロセスが例外を投げる可能性があります。 同様に、ユーザーは設定を作成または書き込むための正しい ACL を持っている必要があります。 たとえば、コード アクセス セキュリティアクセス許可を持つローカル アプリケーションには、オペレーティング システムのアクセス許可がない可能性があります。 詳細については、「コード アクセス セキュリティの基本」を参照してください。

コード アクセス セキュリティ (CAS) は、.NET Framework と .NET のすべてのバージョンで非推奨になりました。 最近のバージョンの .NET では、CAS に関連する API が使用されている場合、CAS 注釈は使用されず、エラーが発生します。 開発者は、セキュリティ タスクを実行するための代替手段を求める必要があります。

こちらも参照ください