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);}}}}
现在查找含有E:\ArcGIS\Python27\ArcGISx6410.2\python.exe的键:
结果如下:
C#获取注册表指定键值相关推荐
- java读取注册表_Java通过CMD方式读取注册表任意键值对代码实践
需要读取如图所示注册表[HKEY_LOCAL_MACHINE\SOFTWARE\EasyDrv7]节点下的[DateTime]的值 直接上代码: package com.beibei.common.u ...
- 注册表各键值保存的内容及其对用的作用(功能)(不完善,有补充的评论指出供大家学习参考)
从Windows 95开始,Microsoft在Windows中引入了注册表(英文为REGISTRY)的概念(实际上原来在Windows NT中已有此概念).注册表是Windows 95及Window ...
- # 删除注册表项键值_强制删除:让你的电脑上不再有“顽固”程序
微信搜一搜麦克NO1对于很多用户来说,在日常使用电脑的时候,经常会有意无意的安装一些程序.而这些程序也是严重影响了电脑的运行速度.所以,在忍无可忍的情况下,需要将这些"顽固"程序卸 ...
- [C++]用VC++来设置获得注册表的键值(问题解决)
下面这个是基于MFC的基本对话写的.. 演示设置注册表的3中类型的值和获得注册表的3中类型的值.. 分别用RegSetValueEx()来设置,RegQueryValueEx()函数来获得. voi ...
- js读取注册表的键值
try { var shell = new ActiveXObject("WScript.Shell"); --读取注册表 var key = shell.RegRead(&q ...
- windows注册表几大键值
什么是注册表? 从Windows 95开始,Microsoft在Windows中引入了注册表(英文为REGISTRY)的概念(实际上原来在Windows NT中已有此概念).注册表是Windows ...
- 批量删除注册表特定键值的小技巧
今天使用虚拟机的时候发现了一个小的问题,我的ubunto需要使用18.04,但是我用的虚拟机是版本12的,不能正常加载,但是在别人的电脑上就能成功,看他们的版本是15.0的所以我也想吧我的虚拟机升级到 ...
- java获取mysql表的主键_Spring中获取数据库表主键序列
在程序开发中,我们经常有写数据库表的操作,数据表中经常带有主键自增序列,如何获取自增序列.spring中提供了相应的类 DataFieldMaxValueIncrementer. DataFieldM ...
- MyBatis映射文件1(增删改、insert获取自增主键值)
增删改 Mybatis为我们提供了<insert>.<update>.<delete>标签来对应增删改操作 在接口中写增删改的抽象方法 void addEmp(Em ...
最新文章
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记! .
- OpenCASCADE绘制测试线束:OCAF 命令之标准演示命令
- 深度对比Python的3种“字符串格式化”方法,看看你喜欢哪一种?
- HOOK -- IAT HOOK 本进程MessageBox
- 创建表头固定,表体可滚动的GridView(转)
- 译 | .NET Core 基础架构进化之路(二)
- 排行榜上用C++写局域网聊天程序
- 机器学习重大挑战:坏数据和坏算法正在毁掉你的项目
- linux 系统显示很大,在Linux中可视化显示内存占用情况的方法
- 工作日志20150202
- 点击某些按钮不要触发验证控件
- python中的加减乘除符号属于什么_python中的加减乘除小知识
- 免疫算法的c语言,免疫算法(IA)
- 陕西网络培训学院自动学习简易脚本
- Elasticsearch常用搜索和分词器
- Grounded video description
- 网络广告中,CPC、CPA、CPM 的定义各是怎样的?
- (1)统一流程管理平台--前言
- 信任=自信+他信+信他
- 外星人安装MSDN原版系统一键还原Alienware OEM logo
热门文章
- matlab 计算指北角,运筹学及MATlab编程.doc
- 随机过程及应用(一) - 特征函数
- 期末试题及答案计算机,《计算机应用基础》期末试题及答案
- Java项目-博客管理系统介绍
- python爬取携程机票并发送过滤后的机票信息到指定邮箱
- Windows补丁查找及安装
- 基于复杂网络理论的计算机网络拓补分析,基于复杂网络理论的计算机网络拓扑分析论文.doc...
- sqlhelper 的使用 (C#)超级详细的入门教程
- 传输线理论之相速、相位等的概念
- Redis 持久化 RDB/AOF 详解与实践