시나리오 : 성능에 대해서는 신경 쓰지 않습니다. 우리는 레지스트리에서 확인해야하는 값의 배열을 가지고 있습니다. // 값에는 값이있을 수 있습니다. 우리는 이것을 바꿀 필요가있다.레지스트리 반복, 값 검색
지금 당장은 모든 값을 반복하는 것처럼 느껴지지 않습니다. 몇 개 건너 뛰고 결국 null이되고 충돌이 발생합니다. , 주요
private static void GetSubKeys(RegistryKey SubKey,string KeyWord)
{
foreach (string valueName in SubKey.GetValueNames())
{
string Value = SubKey.GetValue(valueName).ToString();
//Check for any values at all.
MessageBox.Show(valueName + " with data : " + Value);
if (Value.Contains(KeyWord))
MessageBox.Show("Found '" + KeyWord + "' At " + SubKey.Name);
}
foreach (string Key in SubKey.GetSubKeyNames())
{
MessageBox.Show(SubKey.Name);
GetSubKeys(SubKey.OpenSubKey(Key), KeyWord);
}
}
내가 레지스트리 클래스와 함께 최고의 작업에서 멀리있어이 공허를 호출 이제
static void Main(string[] args)
{
string[] FASKeyWords = new string[] { "DummyValue1", "DummyValue2" };
RegistryKey BaseKey = Registry.LocalMachine;
foreach (string FASKeyWord in FASKeyWords)
{
Console.WriteLine("Looking in " + BaseKey.Name);
Console.WriteLine("Looking for : " + FASKeyWord);
GetSubKeys(BaseKey, FASKeyWord);
}
}
만에 :
이
홈페이지는 다음과 같습니다, 콘솔 프로그램입니다 내 지식이 괜찮을거야? , 나는 너무 오랫동안 그것을 맹목적으로 주연 해왔다. 나는 다른 눈의 쌍으로도 좋을 것이라고 생각했다. :)크래시가 발생합니다. string Value = SubKey.GetValue (valueName) .ToString() ; 에 NullReferenceException이있는 경우 또한 키 내부에 모든 값이 포함 된 messageBox가 표시되지 않습니다. 임의로 선택하는 것과 같습니다.
문제의 시각적 표현. MSDN에서 http://peecee.dk/uploads/122012/Untitled2.png
는 메시지 및 스택 추적을 게시하시기 바랍니다. –
죄송합니다. 실제로 생성 된 오류는 잊어 버렸습니다. –
그러면 코드를 다시 실행하여 캡처해야합니다. –