Сброс устройства в диспетчере устройств
-
28-09-2019 - |
Вопрос
Я ищу программически API о том, как перезапустить любое устройство, которое позволяет включить / отключить в диспетчере устройств,
такие как аудиоустройства и сетевой адаптер
Решение
Вам придется использовать Setupapi. / API Configmanager. Отказ Но имейте в виду, что под приложением при приложении x64. Должен также быть также X64 для включения / отключения устройства (так что вы не можете сделать это в Delphi прямо сейчас - сначала я подумал, что это проблема с перенаправлением файлов / реестра для приложения X86-приложения под X64, но это не помогло). Перечисление устройства работает нормально. В одной статье на MSDN было что-то в одной статье, но я не могу найти это прямо сейчас. Я сделал приложение FP / Lazarus X64 для включения / отключения устройств под OS X64.
Вы можете скачать WDK. и искать исходный код Девикон (C: Winddk 7600.16385.1 src setup devcon). В CMDS.cpp Существует функция ControlCallback, который включает / отключает устройство с помощью setupapi). Но сначала вам нужно перечислить классы устройств (по GUID или CLUCKNAME), а затем перечислять экземпляры устройства или открытое устройство по строке устройстваInstanceID. Это в C, но должно быть легко узнать, как использовать этот API.
Не уверен, что вы делаете, но, возможно, было бы легче использовать этот devcon.exe (не знаю, разрешает ли лицензия на лицензию) и включить / отключить устройствами?
Другие советы
У меня нет опыта с этим, но я думаю, что вы можете использовать Устройствооконтрол API.