这篇文章给大家介绍利用C#怎么对注册表建获取并指定键值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
某些程序必须依赖指定运行环境。那么读取注册表来判断此电脑是否有执行环境是个很不错的办法。因为每个软件安装之后都会在注册表中注册对应的键值,并且有些键值是独一无二的。
那么首先就需要找到那个具体的独一无二的键值,以便程序在运行之前能够去读取以判断。
代码如下:
class Program { private static string _sValue = string.Empty; static void Main(string[] args) { Console.WriteLine("请输入待查找值:"); _sValue = Console.ReadLine(); Console.WriteLine($"正在查询。。。"); var registryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32); //判断机器位数 int i = 0; GetKeyNames(registryKey, ref i); Console.WriteLine($"查询结束。。。"); Console.ReadKey(); } /// <summary> /// 遍历所有子项 /// </summary> /// <param name="subkey">节点</param> /// <param name="i"></param> private static void GetKeyNames(RegistryKey subkey, ref int i) { foreach (var subkey_name in subkey.GetSubKeyNames()) // 检索包含所有子项名称的字符串数组 { try { using (RegistryKey csubkey = subkey.OpenSubKey(subkey_name)) { GetValueName(csubkey, ref i); GetKeyNames(csubkey, ref i); } } catch { } } } /// <summary> /// 若包含输入值则输出记录 /// </summary> /// <param name="subkey">节点</param> /// <param name="i"></param> private static void GetValueName(RegistryKey subkey, ref int i) { foreach (var name in subkey.GetValueNames()) //检索包含与此项关联的所有值名称的字符串数组 { var sValue = subkey.GetValue(name) + string.Empty; if (string.Compare(sValue, string.Format(@"{0}", _sValue, StringComparison.OrdinalIgnoreCase)) == 0) { Console.WriteLine(++i + "\t" + subkey.Name); } } } }
名称栏目:利用C#怎么对注册表建获取并指定键值-创新互联
链接URL:https://www.cdcxhl.com/article24/dosoje.html
成都网站建设公司_创新互联,为您提供静态网站、搜索引擎优化、动态网站、网页设计公司、微信公众号、软件开发
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联