我正在尝试获取值并为注册表设置值。
当我尝试访问不在注册表中的路径时,我会遇到异常。
但是当我使用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);
}
如果有可能我该怎么做才有可能。
感谢。
答案 0 :(得分:1)
使用 try - catch 块围绕GetValue并享受编码。
GetValue 的例外情况:
抛出:SecurityException : 用户没有从注册表项中读取所需的权限。
IOException :RegistryKey 包含已经指定的值 标记为删除。
ArgumentException :keyName没有 从有效的注册表根开始。
SetValue 方法:
设置指定的名称/值对 指定的注册表项。 如果 指定的密钥不存在,它是 创建 强>