특정 키 경로에서 레지스트리 키 값을 검색하는 코드가 있습니다. 레지스트리 키 SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
레지스트리 키의 끝에 0000 , 0001 , 0002 , 0003
등의 키를 모두 찾습니다. {4D36E972-E325-11CE-BFC1-08002BE10318}
. 각 키 (예 : 0007
)에는 과 같이 네트워크 인터페이스 카드 ID 값을 보유하는 NetCfgInstanceId
이라는 하위 키가 있습니다. 값을 찾으면 메소드는 키 경로를 반환합니다! 문제레지스트리 키 값을 찾고 레지스트리 키 값 경로를 반환하십시오.
foreach (string key_value in key.GetValue("NetCfgInstanceId").ToString())
전체 코드에서 오류 Cannot convert type 'char' to 'string'
입니다이 문제를 해결할 수있는 방법
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);
}
입니까?
이 코드를 전체 코드로 작성 하시겠습니까? 내가 이해 못하는 것. : – user1562839
오류가 발생했습니다. var key_value = key.GetValue ("NetCfgInstanceId"); /// 키가 발견되지 않았습니다. – user1562839
해결책을 찾았습니다!이 문제를 해결하지 마십시오! – user1562839