Registry GetValue函数

时间:2009-12-16 10:54:26

标签: c# .net registry

我正在尝试获取值并为注册表设置值。

当我尝试访问不在注册表中的路径时,我会遇到异常。

但是当我使用Registry.SetValue(keyName, "", 0);设置该路径时,一切正常,我可以从中获取非现有值。

知道为什么我不能在nun现有路径上使用我的public int GetComponent(string RegKey)函数吗?

public class LP_Registery
{
    private const string userRoot = "HKEY_CURRENT_USER";
    private const string subkey   = @"Software\PCBMatrix\LPWizard";
    private string keyName;

    public LP_Registery(string folderName) => keyName = userRoot + "\\" +  subkey + "\\" + folderName;
    public int GetComponent(string RegKey) => (int)Registry.GetValue(keyName, RegKey, 0); 
    public void SetComponent(string RegKey, int RegVal) => Registry.SetValue(keyName, RegKey, RegVal, RegistryValueKind.DWord);
}

如果有可能我该怎么做才有可能。

感谢。

1 个答案:

答案 0 :(得分:1)

使用 try - catch 块围绕GetValue并享受编码。

GetValue 的例外情况:

  

抛出:SecurityException :   用户没有从注册表项中读取所需的权限。

     

IOException :RegistryKey   包含已经指定的值   标记为删除。

     

ArgumentException :keyName没有   从有效的注册表根开始。


SetValue 方法:

  

设置指定的名称/值对   指定的注册表项。 如果   指定的密钥不存在,它是   创建