博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#语言获取控制面板“程序和功能”列表
阅读量:6851 次
发布时间:2019-06-26

本文共 1341 字,大约阅读时间需要 4 分钟。

hot3.png

今天在项目开发过程中遇到了一个场景。在C#写的Winform程序中,要判断一个驱动程序是否安装。

驱动程序安装后可在控制面板中的“程序和功能”界面找到,为此我的C#程序也需要获取这个列表,以判断驱动程序是否安装。

我参考了这篇文章:

对这篇文章中的函数略作修改,写了个函数如下,若驱动程序已安装则返回true,否则返回false:

/// /// 检查注册表,查看是否安装指定驱动/// public static bool CheckCryptoKit(){    String[] softwareList = null;    ArrayList list = new ArrayList();    //从注册表中获取控制面板“卸载程序”中的程序和功能列表    RegistryKey Key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(        "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall");    if (Key != null) //如果系统禁止访问则返回null    {        foreach (String SubKeyName in Key.GetSubKeyNames())        {            //打开对应的软件名称            RegistryKey SubKey = Key.OpenSubKey(SubKeyName);            if (SubKey != null)            {                String SoftwareName = SubKey.GetValue("DisplayName", "Nothing").ToString();                //如果没有取到,则不存入动态数组                if (SoftwareName != "Nothing")                {                    list.Add(SoftwareName);                }            }        }        //强制转换成字符串数组,防止被修改数据溢出        softwareList = (string[])list.ToArray(typeof(string));    }    //判断有无找到驱动中要找的关键字,有则返回true,无则返回false    foreach (string software in softwareList)    {        if (software.IndexOf("XXXXXXXXXXXXXXXXXX") > -1)        {            return true;        }    }    return false;}

END

转载于:https://my.oschina.net/Tsybius2014/blog/1559526

你可能感兴趣的文章
Codeforces Round #363 Fix a Tree(树 拓扑排序)
查看>>
hihocoder1455 Rikka with Tree III(bitset 莫队 dfs序)
查看>>
SQL Server 2008中的MERGE(不仅仅是合并)
查看>>
啤酒与饮料算法
查看>>
xxx is not in the sudoers file.This incident will be reported.的解决方法
查看>>
Java实现冒泡排序、折半查找
查看>>
[C++] 引用
查看>>
Drupal7 Module chapter 1 (猪扒7的开发)第一章
查看>>
Django - admin管理工具
查看>>
获取本月天数 和 本月日期
查看>>
js高阶函数map和reduce
查看>>
vue渲染时对象里面的对象的属性提示undefined,但渲染成功
查看>>
贴一份用delphi修改注册表改网卡MAC地址的代码
查看>>
JS获取页面URL信息
查看>>
tomcat
查看>>
WebStorm 快键键
查看>>
Google code android 开源项目 集合
查看>>
tomcat 调优
查看>>
E - Triangle
查看>>
Web安全学习笔记(一)
查看>>