【发布时间】:2014-05-29 04:16:22
【问题描述】:
我编写的程序通过 dpinst.exe 安装 USB 设备驱动程序。在程序启动时,我想通过搜索/安装/更新某些驱动程序来检查 Windows 是否忙。 (我要避免的主要情况是在 Windows 为插入的设备搜索驱动程序时启动 dpinst.exe。)我该如何检查?
【问题讨论】:
我编写的程序通过 dpinst.exe 安装 USB 设备驱动程序。在程序启动时,我想通过搜索/安装/更新某些驱动程序来检查 Windows 是否忙。 (我要避免的主要情况是在 Windows 为插入的设备搜索驱动程序时启动 dpinst.exe。)我该如何检查?
【问题讨论】:
解决方案是使用 CMP_WaitNoPendingInstallEvents 函数。示例here。
【讨论】:
您可以使用Process 查看另一个 dpinst 实例是否已经在运行。
Process[] processlist = Process.GetProcesses();
foreach(Process p in processlist){
if (p.ProcessName.StartsWith("dpinst"))
...
}
我敢打赌这是不必要的:您试图避免的场景已经由 dpinst/Windows 本身管理。
【讨论】: