门外汉,请问,RegistryKey key = Registry.LocalMachine之后,访问名称不固定的注册表位置,应该用什么命令。

daicscn 2017-10-10 03:10:13
只会按教程照葫芦画瓢的门外汉,慢慢有点想法了,也有问题了。前阵子抄了一段代码,节选如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using Microsoft.Win32; //对注册表进行操作需要引入

namespace WindowsService1
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{
RegistryKey key = Registry.LocalMachine;
RegistryKey hk = key.OpenSubKey("HARDWARE\\DESCRIPTION", true);

用完之后挺好用,回过头来慢慢啃每一句的意思。
上面最后两句的意思貌似是,访问了注册表里面的某个位置,并判断有没有权限修改吧。
现在想知道,如果需要访问的那个子项,名称是和系统、甚至硬件名有关联的,那就每台电脑都不一样了,应该用什么样的命令准确找到这个注册表项呢。
具体就像后面的附图,GEN开头这一注册表项貌似是和系统有关,所以每台电脑的这一项名称都不同,然后在上一级ACPI的子项里,GEN这一项从前往后的位置也不是固定的。
哎,混沌状态中,不知道问题描述明白了没有。。。
...全文
736 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepSayingNo 2017-10-12
  • 打赏
  • 举报
回复
是的,就是这样做
引用 2 楼 daicscn 的回复:
[quote=引用 1 楼 dotnetstudio 的回复:] 你看能不能用通配符进行匹配
是不是这么个思路: 先找到确定名称的那一级注册表----然后用已知的一部分名称,用类似查找关键字的方式在这一级注册表里面找到这个子项-----然后对这个子项进行编辑。是吧。 C#可以实现上面的想法吧,具体的命令,能否给个关键。谢谢。 [/quote]
daicscn 2017-10-12
  • 打赏
  • 举报
回复
引用 1 楼 dotnetstudio 的回复:
你看能不能用通配符进行匹配
是不是这么个思路: 先找到确定名称的那一级注册表----然后用已知的一部分名称,用类似查找关键字的方式在这一级注册表里面找到这个子项-----然后对这个子项进行编辑。是吧。 C#可以实现上面的想法吧,具体的命令,能否给个关键。谢谢。
KeepSayingNo 2017-10-12
  • 打赏
  • 举报
回复
你看能不能用通配符进行匹配

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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