2009-03-03 73 views
0

我期待为我的Win32系统开发一些可以找到并响应特定屏幕事件的东西。例如,当我的屏幕(屏幕的30x30像素部分)的位图范围(100,100)到(130,130)与提供的30x30像素基线匹配时,请执行特定操作。阅读并响应屏幕上的匹配标准

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

回答

1

你可以尝试让桌面窗口(GetDesktopWindow),然后获得它的设备上下文(GetWindowDC),然后创建一个兼容的内存设备上下文(CreateCompatibleDC),创建从桌面DC兼容的位图(CreateCompatibleBitmap) ,请在内存中的直流电中选择它(SelectObject),然后对您感兴趣的区域使用桌面直流电对位于内存中的直流电(BitBlt)进行位传输。所有这些之后不要忘记清理。

噢,如果你在托管代码中这样做,你可以在PInvoke.net上找到所有这些API。您还需要使用Imaging.CreateBitmapSourceFromHBitmap将位图从本地位图复制到托管位图。

我正在写所有这些从内存中;它曾经在XP上工作,但我还没有在Vista或Win7上尝试过。

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

+0

任何示例?这将在XP上,所以如果我能看到它在行动中,也许是一些演示代码,那将是完美的。我会使用托管代码。 – Ray 2009-03-03 07:03:17