我有一个关于屏幕捕获程序的问题。我有一个 WPF 4 应用程序,它需要能够读取位于同一网络上另一台计算机上的屏幕并查找其中的更改。我以前从来没有这样做过,所以我希望有人能给我一些指示或指出正确的方向。
非常感谢。
蒂姆
你需要检测任何变化吗?您可以使用钩子进行少量更改;
http://msdn.microsoft.com/en-us/library/ms644991%28VS.85%29.aspx(ShellProc回调函数)
它会通知您是否移动了某些窗口,是否重绘了某些内容。我不确定它对您有多大用处,但您可以查看一下。
还有更多方法:如何检测窗口内容何时发生变化
如果您只需要内容是否发生变化的信息,可以在“另一台计算机”上进行处理。
1)设置socket连接
2)让彼此交流
3) 现在实际代码应该在 Win32(C++) 中完成以获得最佳性能。但是,您可以使用 C# 来完成。只需谷歌在 C# 中进行快照,您应该会找到一些东西。
4)要实际进行比较,有很多方法。一种方法是与最后一张图片逐像素比较。将图像拆分为 COMPUTER_PROCESSORS-1 线程并比较像素。
或者,您可以运行使用 GPU 着色器,这可能使其比 CPU 方法更快。