我如何在VB6中“屏幕刮”其他Windows程序?

时间:2010-02-09 08:55:21

标签: vb6 screen screen-scraping

我想每秒监视一个进程,直到它显示出预期的“错误”消息。

我如何监控something.exe并通过“屏幕抓取”来自我的vb6程序中的something.exe的错误消息获取通知?是否可以终止或点击vb6中的“okay”按钮?

这种东西更适合VB.net吗?

1 个答案:

答案 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