可视柜台web扩展增强二期_浏览器弹窗修复.md 1.2 KB

崩溃原因查找

  • 尝试通过捕获并分析崩溃转储文件 (Crash Dump),找到问题的原因。
    • 根据初步分析,追踪为联软的mozartbreathcore.dll异常
  • 确定崩溃的异常类型和地址,确定win8/win10系统的异同

解决方案1:抑制系统错误弹窗

  • 调用 SetErrorMode(SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
    • SEM_NOGPFAULTERRORBOX: 防止系统显示通用保护错误(General Protection Fault,即访问冲突)的消息框。
    • SEM_FAILCRITICALERRORS: 防止系统显示所有关键错误消息框。
    • SEM_NOOPENFILEERRORBOX: 防止系统显示打开文件失败的错误消息框。
  • 并非所有错误类型都能被捕获。

解决方案2:自行处理异常

  • 使用 SetUnhandledExceptionFilter 函数设置一个异常过滤器,用以捕获未处理的异常。
  • 并非所有错误类型都能处理。

解决方案3:模拟自行点掉

  • 因为该弹框不影响程序运行,所以可以考虑通过模拟键盘操作来关闭弹框。
  • 使用FindWindow和PostMessage模拟点击“确定”按钮。
  • 需要注意,在win8/win10系统中,弹框的窗口类名可能不同。