C# 如何通过安装任何驱动程序来检查Windows是否忙?

C# 如何通过安装任何驱动程序来检查Windows是否忙?,c#,windows,winapi,driver,C#,Windows,Winapi,Driver,我编写了一个程序,通过dpinst.exe安装usb设备驱动程序。在程序启动时,我想通过搜索/安装/更新一些驱动程序来检查Windows是否忙。我想避免的主要情况是在Windows搜索驱动程序以查找插入的设备时启动dpinst.exe。如何检查?您可以使用查看dpinst的另一个实例是否已在运行 Process[] processlist = Process.GetProcesses(); foreach(Process p in processlist){ if (p.Process

我编写了一个程序,通过dpinst.exe安装usb设备驱动程序。在程序启动时,我想通过搜索/安装/更新一些驱动程序来检查Windows是否忙。我想避免的主要情况是在Windows搜索驱动程序以查找插入的设备时启动dpinst.exe。如何检查?

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

Process[] processlist = Process.GetProcesses();

foreach(Process p in processlist){
    if (p.ProcessName.StartsWith("dpinst"))
      ...
}
我敢打赌这是不必要的:您试图避免的场景已经由dpinst/Windows本身管理。

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

Process[] processlist = Process.GetProcesses();

foreach(Process p in processlist){
    if (p.ProcessName.StartsWith("dpinst"))
      ...
}

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

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

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

谢谢您的建议,但我只启动了dpinst的一个实例。如果Windows当时正忙于另一个搜索/安装,则dpinst过程可能需要几分钟才能完成安装。所以我想警告用户,让他决定是继续等待还是关闭另一个安装并重试。感谢您的建议,但我只启动了dpinst的一个实例。如果Windows当时正忙于另一个搜索/安装,则dpinst过程可能需要几分钟才能完成安装。所以我想警告用户,让他决定是继续等待还是关闭另一个安装并重试。非常有用。谢谢,非常有帮助。谢谢