RegistryKey.OpenSubKey メソッド (String)
サブキーを読み取り専用で取得します。
Overloads Public Function OpenSubKey( _
ByVal name As String _) As RegistryKey
[C#]
public RegistryKey OpenSubKey(stringname);
[C++]
public: RegistryKey* OpenSubKey(String* name);
[JScript]
public function OpenSubKey(
name : String) : RegistryKey;
パラメータ
- name
開くサブキーの名前またはパス。
戻り値
要求されたサブキー。操作が失敗した場合は null。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | name が NULL です。 |
ArgumentException | 指定したサブキーの長さが、許容される最大値 (255 文字) を超えています。 |
ObjectDisposedException | このメソッドの実行対象の RegistryKey が閉じられています。閉じられたキーにはアクセスできません。 |
SecurityException | このユーザーには、RegistryPermission.SetInclude(delete, currentKey) アクセス許可がありません。 |
解説
他のメソッドおよびプロパティを使用してキーを操作するには、操作する前にキーを開く必要があります。
指定したサブキーが見つからない場合は、null 値が返されます。
使用例
[Visual Basic, C#, C++] 次のコード例は RegistryKey クラスの例の一部です。
' Print the information from the Test9999 subkey.
Console.WriteLine("There are {0} subkeys under Test9999.", _
test9999.SubKeyCount.ToString())
For Each subKeyName As String In test9999.GetSubKeyNames()
Dim tempKey As RegistryKey = _
test9999.OpenSubKey(subKeyName)
Console.WriteLine(vbCrLf & "There are {0} values for " & _
"{1}.", tempKey.ValueCount.ToString(), tempKey.Name)
For Each valueName As String In tempKey.GetValueNames()
Console.WriteLine("{0,-8}: {1}", valueName, _
tempKey.GetValue(valueName).ToString())
Next
Next
[C#]
// Print the information from the Test9999 subkey.
Console.WriteLine("There are {0} subkeys under {1}.",
test9999.SubKeyCount.ToString(), test9999.Name);
foreach(string subKeyName in test9999.GetSubKeyNames())
{
using(RegistryKey
tempKey = test9999.OpenSubKey(subKeyName))
{
Console.WriteLine("\nThere are {0} values for {1}.",
tempKey.ValueCount.ToString(), tempKey.Name);
foreach(string valueName in tempKey.GetValueNames())
{
Console.WriteLine("{0,-8}: {1}", valueName,
tempKey.GetValue(valueName).ToString());
}
}
}
[C++]
// Print the information from the Test9999 subkey.
Console::WriteLine(S"There are {0} subkeys under Test9999.",
test9999->SubKeyCount.ToString());
String* subKeyNames __gc [] = test9999->GetSubKeyNames();
for(int i =0; i < subKeyNames->Length; i++)
{
RegistryKey* tempKey = test9999->OpenSubKey(subKeyNames[i]);
Console::WriteLine(S"\nThere are {0} values for {1}.",
tempKey->ValueCount.ToString(), tempKey->Name);
String* valueNames __gc [] = tempKey->GetValueNames();
for(int j = 0; j < valueNames->Length; j++)
{
Console::WriteLine(S"{0,-8}: {1}", valueNames[j],
tempKey->GetValue(valueNames[j])->ToString());
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- RegistryPermission (指定したレジストリ キーを読み取るために必要なアクセス許可) Read (関連する列挙体)
- SecurityPermission (指定したレジストリ キーがリモート キーである場合にアンマネージ コードにアクセスするために必要なアクセス許可) UnmanagedCode (関連する列挙体)
参照
RegistryKey クラス | RegistryKey メンバ | Microsoft.Win32 名前空間 | RegistryKey.OpenSubKey オーバーロードの一覧 | CreateSubKey | DeleteSubKey | DeleteSubKeyTree | GetSubKeyNames | OpenRemoteBaseKey | SubKeyCount | Registry