我正在寻找一个关于如何重新启动任何允许在设备管理器中启用/禁用的设备的编程 API,

例如音频设备和网络适配器

有帮助吗?

解决方案

你将不得不使用 设置接口 / 配置管理器API. 。但请注意,在 x64 下您的应用程序。也必须是 x64 才能启用/禁用设备(所以你现在不能直接在 Delphi 中执行此操作 - 首先我认为这是 x64 下 x86-app 的文件/注册表重定向问题,但它没有帮助)。设备枚举工作正常。MSDN 上的一篇文章中有关于它的内容,但我现在找不到它。我制作了 FP/Lazarus x64 应用程序,用于在 x64 操作系统下启用/禁用设备。

您可以下载 WDK 并寻找源代码 开发者大会 (C:\WinDDK\7600.16385.1\src\setup\devcon)。在 cmds.cpp 中,有一个 ControlCallback 函数,它可以使用 SetupApi 启用/禁用设备。但首先需要枚举设备类(通过 GUID 或 ClassName),然后通过 DeviceInstanceId 字符串枚举设备实例或打开设备。它是用 C 编写的,但学习如何使用该 API 应该很容易。

不确定你在做什么,但也许使用 devcon.exe (不知道许可证是否允许)并通过它启用/禁用设备会更容易?

其他提示

我与它没有经验,但我认为你可以使用的 DeviceIoControl的 API。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top