十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍利用C#怎么对注册表建获取并指定键值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联专注于企业营销型网站建设、网站重做改版、周村网站定制设计、自适应品牌网站建设、H5高端网站建设、购物商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为周村等各大城市提供网站开发制作服务。某些程序必须依赖指定运行环境。那么读取注册表来判断此电脑是否有执行环境是个很不错的办法。因为每个软件安装之后都会在注册表中注册对应的键值,并且有些键值是独一无二的。
那么首先就需要找到那个具体的独一无二的键值,以便程序在运行之前能够去读取以判断。
代码如下:
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(); } ////// 遍历所有子项 /// /// 节点 /// 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 { } } } ////// 若包含输入值则输出记录 /// /// 节点 /// 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); } } } }