次の方法で共有


Microsoft.Win32 名前空間を使用したレジストリの読み取りとレジストリへの書き込み (Visual Basic)

My.Computer.Registryレジストリに対してプログラミングする際の基本的なニーズをカバーする必要がありますが、.NET のMicrosoft.Win32名前空間でRegistryクラスとRegistryKey クラスを使用することもできます。

レジストリ クラスのキー

Registry クラスは、サブキーとその値にアクセスするために使用できる基本レジストリ キーを提供します。 ベース キー自体は読み取り専用です。 次の表に、 Registry クラスによって公開される 7 つのキーの一覧と説明を示します。

説明
ClassesRoot ドキュメントの種類と、それらの型に関連付けられているプロパティを定義します。
CurrentConfig ユーザー固有ではないハードウェア構成情報が含まれています。
CurrentUser 環境変数など、現在のユーザー設定に関する情報が含まれます。
DynData 仮想デバイス ドライバーで使用される動的レジストリ データが含まれます。
LocalMachine ローカル コンピューターの構成データを保持する 5 つのサブキー (ハードウェア、SAM、セキュリティ、ソフトウェア、およびシステム) が含まれています。
PerformanceData ソフトウェア コンポーネントのパフォーマンス情報が含まれています。
Users 既定のユーザー設定に関する情報が含まれます。

Von Bedeutung

ローカル コンピューター (LocalMachine) よりも、現在のユーザー (CurrentUser) にデータを書き込む方が安全です。 通常は "スクワッティング" と呼ばれる条件は、作成するキーが以前に別の悪意のあるプロセスによって作成された場合に発生します。 これを回避するには、キーがまだ存在しない場合にNothingを返すメソッド (GetValue など) を使用します。

レジストリからの値の読み取り

次のコードは、HKEY_CURRENT_USERから文字列を読み取る方法を示しています。

Dim regVersion As Microsoft.Win32.RegistryKey
Dim keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    regVersion.Close()
End If

次のコードは、文字列の読み取り、インクリメント、およびHKEY_CURRENT_USERへの書き込みを行います。

Dim regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
                  "SOFTWARE\\Microsoft\\TestApp\\1.0", True)
If regVersion Is Nothing Then
    ' Key doesn't exist; create it.
    regVersion = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
                 "SOFTWARE\\Microsoft\\TestApp\\1.0")
End If

Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    intVersion = intVersion + 1
    regVersion.SetValue("Version", intVersion)
    regVersion.Close()
End If

こちらも参照ください