如何在任务管理器或通过其他方法捕获Windows弹出框事件?

如何在任务管理器或通过其他方法捕获Windows弹出框事件?

弹出框事件是带有“确定”单击框的 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

两个代码片段的来源

另外,堆栈溢出有类似的问题

相关内容