我正在寻找有关如何重新启动允许在设备管理器中启用/禁用的任何设备的编程 API,
例如音频设备和网络适配器
我正在寻找有关如何重新启动允许在设备管理器中启用/禁用的任何设备的编程 API,
例如音频设备和网络适配器
您将不得不使用SetupApi / ConfigManager API。但请注意,在 x64 下,您的应用程序。也必须是 x64 才能启用/禁用设备(因此您现在不能直接在 Delphi 中执行此操作 - 首先我认为这是 x64 下 x86-app 的文件/注册表重定向的问题,但它没有帮助)。设备枚举工作正常。在 MSDN 上的一篇文章中有关于它的内容,但我现在找不到它。我已经为 x64 操作系统下的启用/禁用设备制作了 FP/Lazarus x64 应用程序。
您可以下载WDK并查找DevCon的源代码(C:\WinDDK\7600.16385.1\src\setup\devcon)。在 cmds.cpp 中有一个 ControlCallback 函数,它使用 SetupApi 启用/禁用设备。但首先您需要枚举设备类(通过 GUID 或 ClassName),然后通过 DeviceInstanceId 字符串枚举设备实例或打开设备。它在 C 中,但应该很容易学习如何使用该 API。
不确定你在做什么,但也许使用 devcon.exe (不知道许可证是否允许)并通过它启用/禁用设备会更容易?
我没有这方面的经验,但我认为您可以使用DeviceIoControl API。