Registry.GetValue始终返回null [英] Registry.GetValue always return null

查看:253
本文介绍了Registry.GetValue始终返回null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在注册表中有以下密钥:



在以下位置: HKEY_LOCAL_MACHINE\SOFTWARE\RSA 具有值对象调用- WebExControlManagerPath ,其值是 c:\



我正试图这样做:

  var r = Registry.GetValue(@ HKEY_LOCAL_MACHINE\SOFTWARE\ \RSA, WebExControlManagerPth,null); 

if(r!= null)
ProcessAsUser.Launch(ToString());

但是 r 的值始终为空。 / p>



有什么想法吗?

解决方案

您不会以相同的方式访问HKEY_LOCAL_MACHINE配置单元在C#中,就像在批处理脚本中一样。您这样调用 Registry.LocalMachine

  RegistryKey myKey = Registry .LocalMachine.OpenSubKey(@ Software\RSA,false); 
字符串值=(String)myKey.GetValue( WebExControlManagerPth);

if(!String.IsNullOrEmpty(value))
{
ProcessAsUser.Launch(ToString());
}

更新:



如果返回null,则将构建体系结构设置为任何CPU 。操作系统可能会不同地虚拟化32位和64位注册表。请参阅: http:// msdn .microsoft.com / en-us / library / windows / desktop / aa965884%28v = vs.85%29.aspx 从32位应用程序中读取64bit注册表 http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms724072%28v=vs.85%29.aspx


I have the following key in my registry:

under:HKEY_LOCAL_MACHINE\SOFTWARE\RSA I have value object call - WebExControlManagerPath and its value is c:\

I am trying to do this:

var r = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\RSA", "WebExControlManagerPth",null);

if(r!=null)
    ProcessAsUser.Launch(ToString());

But r value is always null.

Any ideas?

解决方案

You don't access the HKEY_LOCAL_MACHINE hive the same way you do in C# as you would in batch scripting. You call Registry.LocalMachine, as such:

        RegistryKey myKey = Registry.LocalMachine.OpenSubKey( @"Software\RSA", false);
        String value = (String)myKey.GetValue("WebExControlManagerPth");

        if (!String.IsNullOrEmpty(value))
        {
            ProcessAsUser.Launch(ToString());
        }

Update:

If it returns null, set your build architecture to Any CPU. The operating system may virtualize 32-bit and 64-bit registries differently. See: http://msdn.microsoft.com/en-us/library/windows/desktop/aa965884%28v=vs.85%29.aspx, Reading 64bit Registry from a 32bit application, and http://msdn.microsoft.com/en-us/library/windows/desktop/ms724072%28v=vs.85%29.aspx.

这篇关于Registry.GetValue始终返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆