C#中如何正确读取注册表值
How to read registry value correctly in C#
我创建了一个字符串类型的密钥,并在 HKEY_USERS\.DEFAULT
的注册表中将其命名为 mykey
,并将值设置为 1234
。
我有一个 windows 表单应用程序,上面有一个按钮。
我想在按下按钮时在 MessageBox 中看到 mykey
的值。我怎样才能做到这一点?
这就是我所做的。但是此代码仅在 MessageBox 中显示 HKEY_USERS
而不是 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());
}
您指定了 Users
部分两次。首先作为注册表的配置单元,然后作为注册表项。
您可以将其从后者中删除:
rk.GetValue(@".DEFAULT\mykey");
或者您应该从注册表开始而不选择配置单元:
Registry.GetValue(@"HKEY_USERS\.DEFAULT\mykey");
您已指定 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");
}
}
}
}
我创建了一个字符串类型的密钥,并在 HKEY_USERS\.DEFAULT
的注册表中将其命名为 mykey
,并将值设置为 1234
。
我有一个 windows 表单应用程序,上面有一个按钮。
我想在按下按钮时在 MessageBox 中看到 mykey
的值。我怎样才能做到这一点?
这就是我所做的。但是此代码仅在 MessageBox 中显示 HKEY_USERS
而不是 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());
}
您指定了 Users
部分两次。首先作为注册表的配置单元,然后作为注册表项。
您可以将其从后者中删除:
rk.GetValue(@".DEFAULT\mykey");
或者您应该从注册表开始而不选择配置单元:
Registry.GetValue(@"HKEY_USERS\.DEFAULT\mykey");
您已指定 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");
}
}
}
}