方法 : Visual Basic で、レジストリ キーに値が存在するかどうかを確認する
更新 : 2007 年 11 月
My.Computer.Registry オブジェクトの GetValue メソッドは、指定した値が特定のレジストリ キーに存在するかどうかを確認するために使用できます。
Web アプリケーションからレジストリを読み取る場合、現在のユーザーは、Web アプリケーションで実装されている認証と偽装によって異なります。
レジストリ キーに値が存在するかどうかを確認するには
GetValue メソッドを使用して、値を取得します。値をチェックし、値が存在しない場合はメッセージを返すコードの例を次に示します。
If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\TestApp", _ "TestValue", Nothing) Is Nothing Then MsgBox("Value does not exist.") End If
堅牢性の高いプログラム
次の条件を満たす場合は、例外が発生する可能性があります。
キーの名前が、Nothing (ArgumentNullException) である場合
レジストリ キーを作成するためのアクセス許可がユーザーにない場合 (SecurityException)
キー名が 255 文字の制限を超えている場合 (ArgumentException)
キーが閉じている場合 (IOException)
レジストリ キーが読み取り専用の場合 (UnauthorizedAccessException)
セキュリティ
このプロセスを実行するには、アセンブリに対して RegistryPermission クラスで権限レベルが許可されている必要があります。完全には信頼できないコンテキストでプロセスを実行している場合は、権限不足のため例外がスローされることがあります。同様に、設定の作成または書き込みを行うために、ユーザーは正しいアクセス制御リストを持っている必要があります。たとえば、コード アクセス セキュリティ権限のあるローカル アプリケーションに、オペレーティング システム権限があるとは限りません。詳細については、「コード アクセス セキュリティの基礎」を参照してください。