Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问作为服务运行的注册表中的CLSID。_C#_Registry - Fatal编程技术网

C# 访问作为服务运行的注册表中的CLSID。

C# 访问作为服务运行的注册表中的CLSID。,c#,registry,C#,Registry,我正在系统帐户下运行一个C#服务,试图访问以下注册表项: \CLSID{8E7FE1EC-79FA-43DF-9452-B71542599B3C}\InProcServer32\ 密钥存在,我可以在单元测试期间访问它(单元测试在当前用户下运行)。该服务可以访问根类中的其他键,但当我尝试访问CLSID子键中的任何内容时,它都会失败 var regPermission = new RegistryPermission(RegistryPermissionAccess.AllAc

我正在系统帐户下运行一个C#服务,试图访问以下注册表项:

\CLSID{8E7FE1EC-79FA-43DF-9452-B71542599B3C}\InProcServer32\

密钥存在,我可以在单元测试期间访问它(单元测试在当前用户下运行)。该服务可以访问根类中的其他键,但当我尝试访问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);        
                }
            }
对于CLSID下的任何内容,我的代码返回“无法打开”+regPath


任何关于为什么会发生这种情况的提示都将不胜感激,因为HKEY_CLASSES_ROOT只是一个指向
HKEY_CURRENT_USER\Software\CLASSES
的指针,当noboy登录时。。。那它就不存在了。真正的配置单元可以在
HKEY_USERS\{user_guid |.DEFAULT}\Software\Classes
下找到,因此除非您知道用户的guid,否则必须使用.DEFAULT

您可以尝试改用
HKEY\U LOCAL\U MACHINE\Software\Classes