无法打开注册表子项

伏努克

即使我尝试同时在x64和x32注册表中打开,也无法打开注册表子项我正在尝试获取已登录的Visual Studio用户的用户名。

@"Software\Microsoft\VisualStudio\12.0\ConnectedUser\IdeUser\Cache"

看不到IdeUser,但是Cache返回NULL。

const string SubKey = @"Software\Microsoft\VisualStudio\12.0\ConnectedUser\IdeUser\Cache";
const string EmailAddressKeyName = "EmailAddress";
const string UserNameKeyName = "DisplayName";

RegistryKey localMachineRegistry64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
RegistryKey reg64 = localMachineRegistry64.OpenSubKey(SubKey, false);

if (reg64 != null)
{
    return reg64.GetValue(SubKey, true).ToString();
}

//Check the 32-bit registry for "HKEY_LOCAL_MACHINE\SOFTWARE" if not found in the 64-bit registry:
RegistryKey localMachineRegistry32 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry32);
RegistryKey reg32 = localMachineRegistry32.OpenSubKey(SubKey, false);

if (reg32 != null)
{
    return reg32.GetValue(SubKey, true).ToString();
}
网络英雄

我已经对您的代码进行了测试,并且可以正常工作(一定程度上)。我可以访问SubKey。*注意,我以管理员身份运行VS。(右键单击VS exe并以admin身份运行,我也是我的dev计算机的本地管理员,因此我具有不受限制的注册表访问权限)。

但是,您的代码有点有趣,因为您实际上没有通过调用来访问注册表中的值GetValue(SubKey,true),在我的示例中,我进行了相应的更改。

const string SubKey = @"Software\Microsoft\VisualStudio\12.0\ConnectedUser\IdeUser\Cache";
const string EmailAddressKeyName = "EmailAddress";
const string UserNameKeyName = "DisplayName";

RegistryKey localMachineRegistry64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
RegistryKey reg64 = localMachineRegistry64.OpenSubKey(SubKey, false);

if (reg64 != null)
{
    //******** This is just an example of getting the user name and email.
    //get user name and email from the selected sub key.
    var userName = reg64.GetValue(UserNameKeyName, String.Empty).ToString();
    var emailAddress = reg64.GetValue(EmailAddressKeyName, String.Empty).ToString();
    //return a bool and pass back the userName and email as out parms?
    return true;
}

希望这可以帮助。

编辑 -

如果注册表访问仍然是一个问题,则可以通过sysinternals的ProcMon监视注册表访问

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在注册表中查看certian子项

来自分类Dev

无法通过系统注册表中的递归打印子项的子项

来自分类Dev

在注册表子项中搜索值

来自分类Dev

Windows注册表| 如何打开.lnk

来自分类Dev

C#获取注册表子项的值

来自分类Dev

列出和删除C#中的注册表子项

来自分类Dev

注册表子项不可见?C#

来自分类Dev

尽管具有 C# 管理员权限,但无法为注册表子项创建/写入值

来自分类Dev

无法从注册表执行VBScript(.vbs)

来自分类Dev

Docker无法从OpenShift访问注册表

来自分类Dev

无法删除注册表中的值

来自分类Dev

无法访问 docker 注册表

来自分类Dev

注册表:Shell打开命令-打开多个程序

来自分类Dev

编辑注册表项并使用批处理文件打开注册表

来自分类Dev

两次打开相同的注册表?

来自分类Dev

注册表命令打开程序最小化

来自分类Dev

Laravel:当注册表打开时会话到期

来自分类Dev

为什么我无法打开我的注册表项

来自分类Dev

在ubuntu上配置MSSQL Server-无法打开或读取持久注册表:\ SystemRoot \ security.hiv

来自分类Dev

在C ++中枚举HKEY_LOCAL_MACHINE \ SOFTWARE中的注册表子项

来自分类Dev

vb.net检查注册表子项值是否存在

来自分类Dev

遍历注册表并获取所有子项和C#中RegistryKey中的值

来自分类Dev

什么是注册表中的“枚举子项”和“通知”权限?

来自分类Dev

递归复制注册表子树,其中某些子项名称包含斜杠

来自分类Dev

如何从注册表子项中提取数据并将其分配给适当的类属性

来自分类Dev

无法推送到远程Docker注册表

来自分类Dev

通过python更改注册表无法正常工作

来自分类Dev

无法查询注册表中已安装的msi文件

来自分类Dev

错误:无法从注册表中提取:kanso

Related 相关文章

热门标签

归档