2008-10-30 2 views
13

Есть ли способ отключить системное устройство с C# .NET.Как отключить системное устройство?

В основном эмуляция при переходе к диспетчеру устройств и отключение устройства таким образом?

Я предполагаю, что есть функция WinAPI, которую я могу вызвать, но я не знаю, какой она есть?

Причина, по которой мне нужно сделать это, заключается в том, что мне нужно отключить и сразу после включения устройства снова.

Мне нужно работать в Windows XP и Vista (x86 & x64). Я посмотрел на то, что называется «DevCon», но он, похоже, не работает на Vista x64.

Спасибо.

Для ответа смотрите здесь: How do I disable a system device programatically?

ответ

11

Эта статья на CodeProject имеет некоторые действительно отличный C# код для достижения этого:

http://www.codeproject.com/KB/cs/HardwareHelper.aspx

В конце концов, вы просто сделать звонок, такие как :

HH_Lib hwh = new HH_Lib(); 

hwh.SetDeviceState("MyDevice", /*Enable*/ true); 
hwh.SetDeviceState("MyDevice", /*Disable*/ false); 

alt text

+0

Это не работает для Vista x64 (см. Мой ответ на вопрос). Спасибо. – Cheetah 2008-11-03 01:40:11

9

Чтобы ответить на вопрос Мел Грина, библиотека аппаратного помощника использует interop для вызова Windows API (setupapi), в частности метода SetupDiSetClassInstallParams. Конечно, здесь есть другие вызовы, которые используются для поиска деталей устройства и т. Д.

Учтите, что если вы используете стандартную учетную запись пользователя или непривилегированную учетную запись, вы не сможете использовать ее для управления (enable/disable и т. д.).

Для получения более подробной информации посмотрите на http://www.pinvoke.net (и для конкретного вызова: http://pinvoke.net/default.aspx/setupapi.SetupDiSetClassInstallParam)

4

Я знаю, что это старый вопрос, но я наткнулся на нее с той же проблемой. Чтобы решить эту проблему, мне пришлось использовать новый DevCon, доступный на TechNet wiki. Статья CodeProject была полезной, но в конце было проще просто положиться на обновленный DevCon. К сожалению, он доступен только в Windows Driver Kit, который составляет более 600 мб.

Смежные вопросы