利用C#怎么对注册表建获取并指定键值-创新互联

这篇文章给大家介绍利用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();
  }
 
  /// <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。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设