1

我创建了一个字符串类型的键,并mykey在注册表中将其命名为 atHKEY_USERS\.DEFAULT并将值设置为1234.

我有一个带有按钮的 Windows 窗体应用程序。

mykey每当按下按钮时,我都想查看 MessageBox 中的值。我怎样才能做到这一点?

这就是我所做的。但是此代码仅显示HKEY_USERS在 MessageBox 中,而不显示mykey.

private void button1_Click(object sender, EventArgs e)
    {
        RegistryKey rk = Registry.Users;
        rk.GetValue("HKEY_USERS\\.DEFAULT\\mykey");

        if (rk == null)
            MessageBox.Show("null");
        else
            MessageBox.Show(rk.ToString());
    }
4

2 回答 2

1

您指定Users零件两次。首先作为注册表的配置单元,然后作为注册表项。

您可以从后者中删除它:

rk.GetValue(@".DEFAULT\mykey");

或者您应该从注册表开始而不选择配置单元:

Registry.GetValue(@"HKEY_USERS\.DEFAULT\mykey");
于 2016-05-13T06:25:05.997 回答
1

您已经指定User了两次,但您必须这样做,这是读取注册表值的安全方法

private void button1_Click(object sender, EventArgs e)
    {
        using (RegistryKey key = Registry.Users.OpenSubKey(".DEFAULT"))
        {
            if (key != null)
            {
                Object val = key.GetValue("mykey");
                if (val != null)
                {
                    MessageBox.Show(val.ToString());
                }
                else
                {
                   MessageBox.Show("Null");
                }
            }

        }
    }
于 2016-05-13T06:26:19.863 回答