弹出框事件是带有“确定”单击框的 Windows 错误通知。我想自动单击“确定”或抑制弹出框的出现。但如何捕获此事件?我在事件查看器中看不到任何内容,也无法跟踪错误来源(除了源自 excel.exe 的错误,该错误正在运行一个长时间运行的进程,当弹出框出现时偶尔会意外停止)。
弹出框中的其他信息包括以下内容:Microsoft Visual C++ 运行时错误 (R6025)。单击“确定”时,进程崩溃,这很好,因为此时我可以通过 Windows 事件查看器捕获崩溃事件,然后在其后面运行计划任务(重新启动)。
以下问题与之相关,但不同之处在于我只是在研究如何捕获和处理此事件,而不是查找和修复原因(链接在此处)。
仅供参考:运行 Windows Server 2012
答案1
我认为你需要使用 AutoHotKey
它有一个计时器,这意味着你可以每 N 秒触发一次事件来检查,或者它也可以本地检测它(我认为)
#Persistent
SetTimer, MsgBoxCheck, 1000
MsgBoxCheck:
If WinExist("msgboxTitle", "msgboxTextString", "ahk_class #32770")
{
WinClose
ExitApp
}
或者
; "Waits until the specified window exists."
; secondsToWait can be omitted. (msgboxTitle/TextString are literal strings.)
WinWait, msgboxTitle ahk_class #32770, msgboxTextString, secondsToWait
if ! ErrorLevel ; didn't time out
WinClose
ExitApp
另外,堆栈溢出有类似的问题