覆盖(?)形式如何在JING中起作用

时间:2010-07-14 12:21:39

标签: c# screenshot jing

好的,任何人都可以解释Jing如何使用覆盖形式拍摄屏幕截图?它似乎需要全屏拍摄并记录所有可见的窗口句柄,并允许您在表单中选择特定的hwnd。可能是真的吗?如果是,实现这一目标的重要步骤是什么?可能是一个简单的图片框或没有自定义控件我没有机会在拍摄屏幕时冻结屏幕?

谢谢!

1 个答案:

答案 0 :(得分:1)

我对Jing并不熟悉,无法确切知道它的用途。但是有两种基本技术。一个是你提到的,捕获屏幕并以最无边框的形式显示它。 Vista / Win7 Snipping工具以这种方式工作。您可以在this thread的答案中找到启动它所需的代码。

另一个,也许更可能被Jing使用,类似于Spy ++的功能,允许用户移动鼠标并在窗口周围绘制一个选择矩形。它的优点是它可以在你运行工具时处理窗口大小调整或消失。您可以使用屏幕大小的最顶层表单来实现它,该表单的TransparencyKey属性设置为BackColor的值。紫红色是一个受欢迎的选择。您可以使用OnPaint()方法在此表单上绘制,图形显示在所有窗口的顶部。您需要一些P / Invoke(GetWindow)来按其Z顺序迭代底层窗口,以了解用户指向哪个窗口。 GetWindowRect()获取窗口矩形。还有一些麻烦来处理围绕边界大小的Aero。

您可以在this thread的答案中找到示例代码,以帮助您开始使用该技术。