C#读写注册表问题

infected 2003-05-09 10:44:32
小弟初次用C#来读写注册表信息,查阅了一些类库资料,基本方法已经有所了解。但是具体实现的时候遇到一些问题。
比如我想读取注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run键值下所有的子键(subkey)并且返回到一个winform的listBox中,要如何实现呢?

导入Microsoft.Win32命名空间
RegistryKey regRead=Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
然后如何实现吧Run下的各个键值都逐一列表在listBox里面的,请指教。
...全文
175 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
infected 2003-05-10
  • 打赏
  • 举报
回复
swhrc(锄大哥)既然你看懂了为什么不说说啊。

看看清楚我是要把键值返回,又不是读写!
seabirdforever 2003-05-10
  • 打赏
  • 举报
回复
RegistryKey regRead=Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
/*如果需要项的写访问权限,真第二个参数则设置为true,如果只是读取
第二个参数为false,或者不要第二个参数
RegistryKey regRead=Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
*/

string[] subKeyNames = regRead.GetSubKeyNames();//*得到当前项下所有子项名称字符串数组
string[] nowValueNames = regRead.GetValueNames();//*得到当前项名称字符串数组
string[] nowValue =string[nowValueNames.Length];//*用来保存当前项的键名称
for(int i=0;i< subKeyNames.Length;i++)
{
nowValue[i] = regRead.GetValue(subKeyNames[i]);//*循环读取当前项的键值
}
regRead.Close();
ListBox1.Items.AddRange(subKeyNames);//列举当前项下所有子项名称
ListBox2.Items.AddRange(nowValueNames);//列举当前项下的所有键名称
ListBox3.Items.AddRange(nowValue[i]);//列举当前子项下的所有键值

可以用递归列举当前项下所有子项的名称和各个字项所有的键名称和键值


shellwang 2003-05-09
  • 打赏
  • 举报
回复
很多书上都会讲到读写注册表,你只要看看就知道怎么读写了!!

试试!
swhrc 2003-05-09
  • 打赏
  • 举报
回复
你自己不用去看书呀!!!《C#高级编程》中有介绍,虽然不是很详细,但已经足够!!

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧