Registry.GetValue メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Public Shared Function GetValue ( _ keyName As String, _ valueName As String, _ defaultValue As Object _ ) As Object
Dim keyName As String Dim valueName As String Dim defaultValue As Object Dim returnValue As Object returnValue = Registry.GetValue(keyName, valueName, defaultValue)
public static function GetValue ( keyName : String, valueName : String, defaultValue : Object ) : Object
- valueName
名前/値ペアの名前。
keyName で指定したサブキーが存在しない場合は、null 参照 (Visual Basic では Nothing)。それ以外の場合は、valueName に関連付けられた値。valueName が見つからない場合は、defaultValue。


文字列 valueName では、大文字と小文字は区別されません。
![]() |
---|
レジストリ キーには、どの名前にも関連付けられていない値を 1 つ格納できます。この無名の値がレジストリ エディタに表示されるときには、名前の代わりに "(既定)" という文字列が表示されます。この無名の値を取得するには、valuName に null 参照 (Visual Basic では Nothing) または空の文字列 ("") を指定します。 |
有効なルート名は、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_CLASSES_ROOT、HKEY_USERS、HKEY_PERFORMANCE_DATA、HKEY_CURRENT_CONFIG、および HKEY_DYN_DATA です。たとえば、Visual Basic では、文字列 "HKEY_CURRENT_USER\MyTestKey" は、HKEY_CURRENT_USER ルートのサブキー "MyTestKey" のキー/値ペアにアクセスします。
GetValue メソッドが展開可能な文字列値 (RegistryValueKind.ExpandString) を取得するときには、ローカル環境のデータを使用して環境文字列を展開します。環境変数への展開可能な参照が含まれた値を、展開可能な文字列 (RegistryValueKind.ExpandString) としてではなく、文字列 (RegistryValueKind.String) として格納している場合、GetValue はこの値を展開しません。このような文字列を展開するには、Environment.ExpandEnvironmentVariables メソッドを呼び出して文字列を取得しておきます。
![]() |
---|
HKEY_PERFORMANCE_DATA からデータを取得する場合は、Microsoft.Win32.RegistryKey.GetValue メソッドではなく、PerformanceCounter クラスを使用することをお勧めします。 |
GetValue メソッドと SetValue メソッドは、使用されるたびにレジストリ キーを開いたり閉じたりするため、多数の値にアクセスする場合に、RegistryKey クラスのメソッドと共に実行されることはありません。
RegistryKey には、レジストリ キーにアクセス制御リスト (ACL: Access Cntrol List) を追加できるメソッド、値を取得する前にそのデータ型をテストできるメソッド、キーを削除できるメソッドも用意されています。

サンプル キーを作成し、このキーに複数のデータ型の値を格納した後、その値を取得して表示するコード例を次に示します。この例では、既定の (無名の) 名前/値ペアを並べ替えて取得する方法、および名前/値ペアが存在しない場合の defaultValue の使用方法を示しています。
Imports System Imports Microsoft.Win32 Public Class Example Public Shared Sub Main() ' The name of the key must include a valid root. Const userRoot As String = "HKEY_CURRENT_USER" Const subkey As String = "RegistrySetValueExample" Const keyName As String = userRoot & "\" & subkey ' Integer values can be stored without specifying the ' registry data type, but Long values will be stored ' as strings unless you specify the type. Note that ' the integer is stored in the default name/value ' pair. Registry.SetValue(keyName, "", 5280) Registry.SetValue(keyName, "TestLong", 12345678901234, _ RegistryValueKind.QWord) ' Strings with expandable environment variables are ' stored as ordinary strings unless you specify the ' data type. Registry.SetValue(keyName, "TestExpand", "My path: %path%") Registry.SetValue(keyName, "TestExpand2", "My path: %path%", _ RegistryValueKind.ExpandString) ' Arrays of strings are stored automatically as ' MultiString. Similarly, arrays of Byte are stored ' automatically as Binary. Dim strings() As String = {"One", "Two", "Three"} Registry.SetValue(keyName, "TestArray", strings) ' Your default value is returned if the name/value pair ' does not exist. Dim noSuch As String = _ Registry.GetValue(keyName, "NoSuchName", _ "Return this default if NoSuchName does not exist.") Console.WriteLine(vbCrLf & "NoSuchName: {0}", noSuch) ' Retrieve the Integer and Long values, specifying ' numeric default values in case the name/value pairs ' do not exist. The Integer value is retrieved from the ' default (nameless) name/value pair for the key. Dim tInteger As Integer = _ Registry.GetValue(keyName, "", -1) Console.WriteLine("(Default): {0}", tInteger) Dim tLong As Long = Registry.GetValue(keyName, _ "TestLong", Long.MinValue) Console.WriteLine("TestLong: {0}", tLong) ' When retrieving a MultiString value, you can specify ' an array for the default return value. The value is ' declared inline, but could also be declared as: ' Dim default() As String = {"Default value."} ' Dim tArray() As String = _ Registry.GetValue(keyName, "TestArray", _ New String() {"Default if TestArray does not exist."}) For i As Integer = 0 To tArray.Length - 1 Console.WriteLine("TestArray({0}): {1}", i, tArray(i)) Next ' A string with embedded environment variables is not ' expanded if it was stored as an ordinary string. Dim tExpand As String = Registry.GetValue(keyName, _ "TestExpand", "Default if TestExpand does not exist.") Console.WriteLine("TestExpand: {0}", tExpand) ' A string stored as ExpandString is expanded. Dim tExpand2 As String = Registry.GetValue(keyName, _ "TestExpand2", "Default if TestExpand2 does not exist.") Console.WriteLine("TestExpand2: {0}...", _ tExpand2.Substring(0, 40)) Console.WriteLine(vbCrLf & _ "Use the registry editor to examine the key.") Console.WriteLine("Press the Enter key to delete the key.") Console.ReadLine() Registry.CurrentUser.DeleteSubKey(subkey) End Sub End Class ' ' This code example produces output similar to the following: ' 'NoSuchName: Return this default if NoSuchName does not exist. '(Default): 5280 'TestLong: 12345678901234 'TestArray(0): One 'TestArray(1): Two 'TestArray(2): Three 'TestExpand: My path: %path% 'TestExpand2: My path: D:\Program Files\Microsoft.NET\... ' 'Use the registry editor to examine the key. 'Press the Enter key to delete the key.
using System; using Microsoft.Win32; public class Example { public static void Main() { // The name of the key must include a valid root. const string userRoot = "HKEY_CURRENT_USER"; const string subkey = "RegistrySetValueExample"; const string keyName = userRoot + "\\" + subkey; // An int value can be stored without specifying the // registry data type, but long values will be stored // as strings unless you specify the type. Note that // the int is stored in the default name/value // pair. Registry.SetValue(keyName, "", 5280); Registry.SetValue(keyName, "TestLong", 12345678901234, RegistryValueKind.QWord); // Strings with expandable environment variables are // stored as ordinary strings unless you specify the // data type. Registry.SetValue(keyName, "TestExpand", "My path: %path%"); Registry.SetValue(keyName, "TestExpand2", "My path: %path%" , RegistryValueKind.ExpandString); // Arrays of strings are stored automatically as // MultiString. Similarly, arrays of Byte are stored // automatically as Binary. string[] strings = {"One", "Two", "Three"}; Registry.SetValue(keyName, "TestArray", strings); // Your default value is returned if the name/value pair // does not exist. string noSuch = (string) Registry.GetValue(keyName, "NoSuchName", "Return this default if NoSuchName does not exist."); Console.WriteLine("\r\nNoSuchName: {0}", noSuch); // Retrieve the int and long values, specifying // numeric default values in case the name/value pairs // do not exist. The int value is retrieved from the // default (nameless) name/value pair for the key. int tInteger = (int) Registry.GetValue(keyName, "", -1); Console.WriteLine("(Default): {0}", tInteger); long tLong = (long) Registry.GetValue(keyName, "TestLong", long.MinValue); Console.WriteLine("TestLong: {0}", tLong); // When retrieving a MultiString value, you can specify // an array for the default return value. string[] tArray = (string[]) Registry.GetValue(keyName , "TestArray", new string[] {"Default if TestArray does not exist."}); for(int i=0; i<tArray.Length; i++) { Console.WriteLine("TestArray({0}): {1}", i, tArray[i]); } // A string with embedded environment variables is not // expanded if it was stored as an ordinary string. string tExpand = (string) Registry.GetValue(keyName , "TestExpand", "Default if TestExpand does not exist."); Console.WriteLine("TestExpand: {0}", tExpand); // A string stored as ExpandString is expanded. string tExpand2 = (string) Registry.GetValue(keyName , "TestExpand2", "Default if TestExpand2 does not exist."); Console.WriteLine("TestExpand2: {0}...", tExpand2.Substring(0, 40)); Console.WriteLine("\r\nUse the registry editor to examine the key."); Console.WriteLine("Press the Enter key to delete the key."); Console.ReadLine(); Registry.CurrentUser.DeleteSubKey(subkey); } } // // This code example produces output similar to the following: // //NoSuchName: Return this default if NoSuchName does not exist. //(Default): 5280 //TestLong: 12345678901234 //TestArray(0): One //TestArray(1): Two //TestArray(2): Three //TestExpand: My path: %path% //TestExpand2: My path: D:\Program Files\Microsoft.NET\... // //Use the registry editor to examine the key. //Press the Enter key to delete the key.
using namespace System; using namespace Microsoft::Win32; int main() { // The name of the key must include a valid root. String^ userRoot = "HKEY_CURRENT_USER"; String^ subKey = "RegistrySetValueExample2"; String^ keyName = String::Concat(userRoot, "\\", subKey); // An int value can be stored without specifying the // registry data type, but Int64 values will be stored // as strings unless you specify the type. Note that // the int is stored in the default name/value // pair. Registry::SetValue(keyName, "", 5280); Registry::SetValue(keyName, "TestInt64", 12345678901234, RegistryValueKind::QWord); // Strings with expandable environment variables are // stored as ordinary strings unless you specify the // data type. Registry::SetValue(keyName, "TestExpand", "My path: %path%"); Registry::SetValue(keyName, "TestExpand2", "My path: %path%", RegistryValueKind::ExpandString); // Arrays of strings are stored automatically as // MultiString. Similarly, arrays of Byte are stored // automatically as Binary. array<String^>^ strings = {"One", "Two", "Three"}; Registry::SetValue(keyName, "TestArray", strings); // Your default value is returned if the name/value pair // does not exist. String^ noSuch = (String^)Registry::GetValue(keyName, "NoSuchName", "Return this default if NoSuchName does not exist."); Console::WriteLine("\r\nNoSuchName: {0}", noSuch); // Retrieve the int and Int64 values, specifying // numeric default values in case the name/value pairs // do not exist. The int value is retrieved from the // default (nameless) name/value pair for the key. int testInteger = (int)Registry::GetValue(keyName, "", -1); Console::WriteLine("(Default): {0}", testInteger); long long testInt64 = (long long)Registry::GetValue(keyName, "TestInt64", System::Int64::MinValue); Console::WriteLine("TestInt64: {0}", testInt64); // When retrieving a MultiString value, you can specify // an array for the default return value. array<String^>^ testArray = (array<String^>^)Registry::GetValue( keyName, "TestArray", gcnew array<String^> {"Default if TestArray does not exist."}); for (int i = 0; i < testArray->Length; i++) { Console::WriteLine("TestArray({0}): {1}", i, testArray[i]); } // A string with embedded environment variables is not // expanded if it was stored as an ordinary string. String^ testExpand = (String^)Registry::GetValue(keyName, "TestExpand", "Default if TestExpand does not exist."); Console::WriteLine("TestExpand: {0}", testExpand); // A string stored as ExpandString is expanded. String^ testExpand2 = (String^)Registry::GetValue(keyName, "TestExpand2", "Default if TestExpand2 does not exist."); Console::WriteLine( "TestExpand2: {0}...", testExpand2->Substring(0, 40)); Console::WriteLine( "\r\nUse the registry editor to examine the key."); Console::WriteLine("Press the Enter key to delete the key."); Console::ReadLine(); Registry::CurrentUser->DeleteSubKey(subKey); } // // This code example produces output similar to the following: // // NoSuchName: Return this default if NoSuchName does not exist. // (Default): 5280 // TestInt64: 12345678901234 // TestArray(0): One // TestArray(1): Two // TestArray(2): Three // TestExpand: My path: %path% // TestExpand2: My path: D:\Program Files\Microsoft.NET\... // // Use the registry editor to examine the key. // Press the Enter key to delete the key.


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からRegistry.GetValue メソッドを検索する場合は、下記のリンクをクリックしてください。

- Registry.GetValue メソッドのページへのリンク