저는 현재 레지스트리 탐색기를 구축하고 있습니다. 주로 더 나은 검색 작업을 지원하기 위해서입니다. '모두 찾기'및 정규 표현식과 같습니다. 내가 직면 한 한 가지 문제는 일부 키가 열 때 보안 예외가 발생한다는 것입니다. 관리자 특권으로 앱을 실행하려고했지만 내 사용자 계정은 관리자이기도합니다. "requireAdministrator"요청 권한으로 매니페스트를 임베드했습니다. 또한 ClickOnce 보안 설정을 requireAdministrator와 호환되지 않는 완전 신뢰로 설정하려고 시도했거나 Visual Studio에서 알려주었습니다 ... 아무 것도이 예외를 피하는 데 도움이되지 않습니다.레지스트리 액세스 예외 문제
모든 키를 반복하고 싶습니다. 나는 열쇠를 추가/삭제하고 싶지 않다. 사용자가 키를 삭제하고 권한을 가지고 있지 않으면 오류 메시지가 표시됩니다. 난 그냥 무제한 읽기 액세스 권한을 가질 수 있기를 원합니다. 이것이 가능한가?
FTR : 저는 Win7 x64이고 Vs2010u를 사용하고 있습니다. 프로젝트는 .net 4.0의 C#으로 작성되었습니다. regedit가 일부 키를 편집 할 수 없더라도 모든 키를 읽을 수있는 경우. 우리도 똑같은 일을하는 앱을 만들 수있는 것이 적절할 것 같습니다. 나는 그것을 매우 어렵게 생각하고 있지만 www에 대한 실질적인 도움이없는 것 같습니다. 링크 - 링크 서클 만, 예.
private void IterateSubKeys(RegistryKeyModel key) {
var subKeys = key.Key.GetSubKeyNames();
var values = key.Key.GetValueNames();
foreach (var valuename in values) {
try {
var valueKind = key.Key.GetValueKind(valuename);
var value = key.Key.GetValue(valuename);
key.Values.Add(new RegistryValueModel(valuename, value, valueKind));
}
catch { }
}
foreach (var keyname in subKeys) {
try {
var subkey = key.Key.OpenSubKey(
keyname,
RegistryKeyPermissionCheck.ReadSubTree,
RegistryRights.ReadKey);
key.SubKeys.Add(new RegistryKeyModel(subkey));
}
catch { Console.WriteLine("Error reading key: {0}", keyname); }
}
}
regedit에서 프로그램에서 찾을 수없는 키를 볼 수 있는지 확인할 수 있습니까? regedit조차도 볼 수없는 키가 있기 때문에 (하지만 프로그램이 열거 할 수도 있습니다)? –