【问题标题】:How to check if Windows is busy by installing any driver?如何通过安装任何驱动程序来检查 Windows 是否忙?
【发布时间】:2014-05-29 04:16:22
【问题描述】:

我编写的程序通过 dpinst.exe 安装 USB 设备驱动程序。在程序启动时,我想通过搜索/安装/更新某些驱动程序来检查 Windows 是否忙。 (我要避免的主要情况是在 Windows 为插入的设备搜索驱动程序时启动 dpinst.exe。)我该如何检查?

【问题讨论】:

    标签: c# windows winapi driver


    【解决方案1】:

    解决方案是使用 CMP_WaitNoPendingInstallEvents 函数。示例here

    【讨论】:

    • 非常有帮助。谢谢。
    【解决方案2】:

    您可以使用Process 查看另一个 dpinst 实例是否已经在运行。

    Process[] processlist = Process.GetProcesses();
    
    foreach(Process p in processlist){
        if (p.ProcessName.StartsWith("dpinst"))
          ...
    }
    

    我敢打赌这是不必要的:您试图避免的场景已经由 dpinst/Windows 本身管理。

    【讨论】:

    • 感谢您的建议,但我只启动了一个 dpinst 实例。如果当时 Windows 正忙于另一个搜索/安装,则 dpinst 过程可能需要几分钟才能完成安装。所以我想警告用户,让他决定是继续等待还是关闭另一个安装并重试。
    猜你喜欢
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 2012-06-23
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多