识别popup并杀死它或按确定

虽然下面的背景资料与这个问题没有太大的关系,但是如果你有好奇心的话,

我在跑步:

xlWorkBook.RefreshAll(); 

在一个Excel工作簿,有时我得到这个消息:

在这里输入图像说明

使用c#.net 3.5我想摆脱这个popup后立即检测到它。

我如何以编程方式检测并closures它/按OK?

请注意,即使是在后台,我也希望能够识别这个popup窗口!

您应该能够将显示警报设置为false,并避免这些警报

 Application.DisplayAlerts = False 

您可以使用Application.DisplayAlerts = False来抑制警报/popup窗口。 但是,这应该是理想的不正确的行为。 当我们调用RefreshAll()并显示一个错误popup窗口时,excel不刷新数据。 它仍然会显示旧的数据。

为了解决这个问题,你可以保持Application.DisplayAlerts=True并创build两个线程:一个打开Excel应用程序并调用RefreshAll(),另一个将等待指定的时间(比如20分钟)。 如果第一个线程在20分钟内没有返回(可能是由于popup),第二个线程会杀死excel进程。 第一个线程将被释放,并将logging该文件未刷新的exception。