如何从注册表中读取所有值
本文关键字:读取 注册表 | 更新日期: 2023-09-27 17:59:25
我要做的是用户名和文件夹路径集中在一个键中。
所以我有这个结构
HKEY_LOCAL_MACHINE
--软件
--XYZ
--userDB
现在在userDB中,我有这样的信息
> NAME TYpe Data
>
> Admin Reg_sz C:'Desktop
>
> Admin2 REG_SZ C:'xyz'logs
如何读取userDB中的值。。。
有什么建议吗。。感谢
我试过这个代码:
RegistryKey masterKey = Registry.LocalMachine.CreateSubKey("SOFTWARE''xyz");
if (masterKey == null)
{
//Console.WriteLine("Null Masterkey!");
}
else
{
table.Rows.Add(false, masterKey.GetValue("userDB"), DateTime.Now);
dataGridView2.DataSource = table;
//Console.WriteLine("MyKey = {0}", masterKey.GetValue("userDB"));
}
masterKey.Close();
但我弄错了拒绝访问注册表项"HKEY_LOCAL_MACHINE''SOFTWARE''xyz"。
当您谈论读取主题中的值时,您的代码实际上会写入注册表。
默认情况下,您不能作为有限用户写入注册表的大部分HKLM
部分。有限的用户可能不会销毁/操作这些密钥,因为这存在安全风险。
您可以让您的安装程序(使用admin-privs运行)更改共享注册表项的权限。但那是糟糕的风格,我不会这么做。
当使用asp.net时,可能会有与介质信任模型相关的额外限制。
您有:
RegistryKey masterKey = Registry.LocalMachine.CreateSubKey("SOFTWARE''xyz");
RegistryKey。CreateSubKey记录为:
创建新的子密钥或打开现有的子密钥以进行写访问。
打开以获得写访问权限很可能需要写权限。
CCD_ 2用于打开用于读取访问的密钥。因此,它很可能不需要任何写入权限。
在什么时候访问被拒绝?您是以提升身份还是以管理员身份运行此代码?
调用CreateSubKey()时可能会失败,而写入HKEY_LOCAL_MACHINE时需要提升权限。
我认为是注册表。LocalMachine。CreateSubKey("SOFTWARE''xyz")将尝试打开具有写访问权限的密钥(如果该密钥存在)。
请尝试以读取访问权限打开密钥。我认为您可以使用CreateSubKey(String,RegistryKeyPermissionCheck)来指定权限访问。
有关详细信息,请参阅MSDN:http://msdn.microsoft.com/en-us/library/dd411617.aspx