如何检测屏幕上的变化?

时间:2011-10-29 21:32:01

标签: c#

我有一个问题,如何检测屏幕上的变化?它的位置不是必要的,但有可能得到它的位置,这将是有帮助的。我在互联网上搜索但没有找到任何合适的答案。现在,我正在用C#编写一个程序,我必须在屏幕上检测到一个更改。我试图每秒捕捉四个屏幕截图并进行比较。这种方法有效,但对PC的性能影响很大。

我认为使用C语言或汇编语言(x86)很容易,因为在汇编中我们可以直接访问视频内存。

是否可以在C#中进行?

代码示例将不胜感激。

项目 检测全屏相机监控软件的任何更改。

2 个答案:

答案 0 :(得分:1)

除了屏幕捕获并在某些时间间隔比较它们(这会导致性能问题), 我能想到的唯一解决方案是连接系统事件,即“重绘”事件。

您需要选择要将程序挂钩的事件。

此代码项目教程可能有所帮助 - http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx

答案 1 :(得分:1)

您真的只是想要在显示器上看到的简单区别吗?我怀疑那会做什么。 对于凸轮输入的运动检测,您可以查看CodeProject上的Motion Detection Algorithms文章。