我想每秒监视一个进程,直到它显示出预期的“错误”消息。
我如何监控something.exe并通过“屏幕抓取”来自我的vb6程序中的something.exe的错误消息获取通知?是否可以终止或点击vb6中的“okay”按钮?
这种东西更适合VB.net吗?
答案 0 :(得分:1)
创建一个vb应用程序,该应用程序使用以所需频率触发的计时器运行。根据弹出的错误,您可能最终必须将其创建为Windows服务以允许其继续运行(主错误窗口可能会锁定对其他窗口的访问,直到处理完毕)。
查看API函数EnumWindows。它将为您提供当前打开的窗口/功能的集合。添加新窗口后,您可以检测到新的错误窗口已显示在屏幕上。
错误应自动冒泡到顶部,但您可以在新窗口的hwnd上使用BringWindowToTop api调用以确定。
不完全合适,但您可以建立以下参考链接:
api帮助: http://www.freevbcode.com/ShowCode.Asp?ID=701
帮助捕获图像: http://www.codeproject.com/KB/vb-interop/DesktopScreenshotInVB6.aspx
杀死错误消息 - 您可以尝试使用api单击按钮,或者您可以硬杀死生成错误的应用程序。通过api快速杀死:
SendMessage app_hWnd, WM_CLOSE, 0, 0