在Windows中使用C#启用/禁用硬件设备

问题描述:

我正在研究一个项目,该项目需要我检查Windows中禁用的设备,如果发现该设备被禁用,程序应启用它。在Windows中使用C#启用/禁用硬件设备

我一直在使用从以前的答案以下解决方案..

How do I disable a system device programatically?

运行时,虽然我收到以下错误......

enter image description here

我调用程序如链接帖子中所示,并在我的程序启动后立即运行它,如图所示,

private void Form1_Load(object sender, EventArgs e) 
    { 

     DisableHardware.DisableDevice(n => n.ToUpperInvariant().Contains("VID_11CA&PID_0219"), false); 

    } 

在我用来进行测试的系统上,我已经禁用了该设备(我希望启用它)。我曾尝试在不同的构建配置(x86,AnyCPU)上构建,并且已在Windows XP和Windows 7上进行了测试,但遇到同样的问题。

有什么建议吗?

+0

您的程序是否以管理员权限运行? – Nasreddine

+0

是的,我从每一个可能的途径运行它。管理权限,非管理,x86和AnyCPU。我正在使用的系统都是32位的,我应该注意。 – ephtee

在经历了很多令人头痛的尝试和错误之后,最好的解决方案是简单地使用devcon来处理我的设备管理,并通过我的程序处理devcon的执行,并带有适当的参数。