特定のキー パスでレジストリ キーの値を検索するコードがあります。レジストリ キーで、レジストリ キーの最後にある などのSYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
すべてのキーを見つけます。. 各キー (たとえば) には、次のように、ネットワーク インターフェイス カードの ID 値を保持するサブキーが呼び出されます。値が見つかった場合、メソッドはキー パスを返します。問題はエラーです0000 , 0001 , 0002 , 0003
{4D36E972-E325-11CE-BFC1-08002BE10318}
0007
NetCfgInstanceId
{C80949A4-CEDA-4F29-BFE2-059856D7F745}
Cannot convert type 'char' to 'string'
foreach (string key_value in key.GetValue("NetCfgInstanceId").ToString())
完全なコードは
public string key_path(RegistryKey root, string root_path, string search_key)
{
string path = string.Empty;
foreach (string keyname in root.GetSubKeyNames())
{
try
{
using (RegistryKey key = root.OpenSubKey(keyname, true))
{
foreach (string key_value in key.GetValue("NetCfgInstanceId").ToString())
{
if (key_value == search_key)
{
string reg_path = (string)key.GetValue("NetCfgInstanceId");
path = reg_path;
}
else
{
path = "Can't find key !";
}
}
}
}
catch (System.Security.SecurityException)
{
//Do nothing !!!
}
}
return path;
}
private void kryptonButton4_Click(object sender, EventArgs e)
{
var answer = key_path(Registry.LocalMachine, @"SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}", "{C80949A4-CEDA-4F29-BFE2-059856D7F745}");
MessageBox.Show(answer);
}
この問題をどのように解決できますか?