阅读并回应屏幕上的匹配条件

时间:2009-03-03 05:58:13

标签: windows screen-scraping

我正在为我的Win32系统开发一些能找到并响应特定屏幕事件的东西。例如,当我的屏幕的位图范围(100,100)到(130,130)(屏幕的30x30像素部分)与提供的30x30像素基线匹配时,则执行某个操作。

任何人都可以让我开始这个吗?也许有一个框架可以让这更容易?或者我可以使用的包裹?甚至可能是第三方实用程序?

1 个答案:

答案 0 :(得分:1)

您可以尝试获取桌面窗口(GetDesktopWindow),然后获取它的设备上下文(GetWindowDC),然后创建兼容的内存设备上下文(CreateCompatibleDC),从桌面dc(CreateCompatibleBitmap)创建一个兼容的位图,在内存中的dc(SelectObject)中选择它,然后对你感兴趣的区域进行bit-blitting,从桌面dc到in -memory dc(BitBlt)。在这一切之后不要忘记清理。

哦,如果您在托管代码中执行此操作,则可以在PInvoke.net上找到所有这些API。您还需要使用Imaging.CreateBitmapSourceFromHBitmap将位图从本机位图复制到托管位图。

我是从记忆中写下这一切的;它过去常用于XP,但我没有在Vista或Win7上试过它。

编辑:在网络上快速搜索“.Net截屏”会返回几个点击,包括this one以及C#和VB.Net中的示例代码。