如何在C#中检查是否已安装/卸载设备驱动程序?
我看了一个问题:How to check whether a driver is installed?,建议使用Win32_SystemDriver
但是,如果我在Windows设备管理器中卸载了驱动程序,则此查询仍然可以找到它。尽管.sys
文件确实从设备管理器中消失了,但并未从C:\Windows\System32\drivers
目录中删除var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_SystemDriver");
var drivers = searcher.Get();
foreach (var driver in drivers)
{
var deviceName = driver.GetPropertyValue("Name") == null ? "<<NULL>>" : driver.GetPropertyValue("Name").ToString();
var deviceStatus = driver.GetPropertyValue("Status") == null ? "<<NULL>>" : driver.GetPropertyValue("Status").ToString();
Console.WriteLine(string.Format("{0} - {1}", deviceName, deviceStatus ));
Thread.Sleep(50);
}
Console.WriteLine("================");
Console.ReadKey();
文件(即使我勾选了删除驱动程序文件的框)。但是由于该设备现在不可用,并且正在Windows设置(Windows 10)的“蓝牙和其他设备”页面中,该驱动程序已被卸载,如果我插入了该设备,则会列出该设备,但下面的消息显示“ Driver is不可用”。在我重新安装驱动程序之前,它将一直保持这种状态。
这是我的代码:
deviceName
deviceStatus
给出了正确的驱动程序名称,而无论是否安装了驱动程序,ErrorDocument 404 /404.html
都是“确定”。
我也在标记Windows 7,因为该解决方案必须在v7和v10中运行。