내가 다음 레지스트리 키에 액세스하려는 시스템 계정에서 실행 C#을 서비스 실행 해요 :서비스로 실행중인 레지스트리에서 CLSID에 액세스합니다.
\ CLSID를 {8E7FE1EC-79FA-43DF-9452은-B71542599B3C} \있는 InprocServer32이
\ 키가 존재하고 내가 단위 테스트를 잘하고 (단위 테스트를 현재 사용자가 아래에서 실행) 그것을 액세스 할 수 있습니다. 이 서비스는 클래스 루트의 다른 키에 액세스 할 수 있지만 CLSID 하위 키에 액세스하려고하면 실패합니다. HKEY_CLASSES_ROOT 단순히 포인터이기 때문에 내 코드 + regPath '를 열 수 없습니다'반환 CLSID 아래에 아무것도 들어
var regPermission = new RegistryPermission(RegistryPermissionAccess.AllAccess,
@"HKEY_CLASSES_ROOT\" + regPath);
regPermission.Demand();
using (var regKey = rootKey.OpenSubKey(regPath))
{
if (regKey != null)
{
string defaultValue = (string)regKey.GetValue("");
{
return defaultValue;
}
}
else
{
Logger.Info("Unable to open " + regPath);
}
}
..
모든 팁이 될 이유에 크게
방금 시간을 절약 할 수있게되었습니다. 감사 –