识别弹出并杀死它或按OK

时间:2012-10-17 20:39:34

标签: c# .net excel

虽然以下背景资料与问题不太相关,但如果您感到好奇,我会将其包括在内:

我正在跑步:

xlWorkBook.RefreshAll();

在Excel工作簿上,有时我收到此消息:

enter image description here

使用c#.NET 3.5我想在检测到它后立即删除它。

如何以编程方式检测并关闭它/按OK?

请注意,我希望能够识别此弹出窗口,即使它在后台!

2 个答案:

答案 0 :(得分:4)

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

Application.DisplayAlerts = False

答案 1 :(得分:0)

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

为了解决这个问题,你可以保留Application.DisplayAlerts=True并创建两个线程:一个可以打开excel应用程序&调用RefreshAll()和其他将等待指定的时间(比如20分钟)。如果第一个线程没有在20分钟内返回(可能是由于弹出),第二个线程将杀死excel进程。第一个线程将被释放,它将记录文件未刷新的异常。