7

我正在尝试在 C#.NET 中创建一个模仿 Windows 7 截图工具功能的应用程序,当应用程序运行时(或通过特定的击键或我选择启动它),用户可以绘制一个矩形在屏幕上无论哪个窗口都有焦点,以捕捉桌面的矩形快照。

我已经知道如何使用 Graphics.CopyFromScreen() 方法来保存给定特定矩形的快照,但我难过的是实际的矩形选择以及如何从中获取边界。

4

2 回答 2

7

TeboScreen : Basic C# Screen Capture Application on Code Project 正是这样做的。

按住鼠标左键,用户绘制一个矩形,指定他们希望捕获的屏幕部分。... mouse_Move 事件用于决定用户是在绘制、拖动(移动)还是调整选择区域的大小。

于 2012-05-08T19:31:49.510 回答
1

用户实际上并没有在屏幕上绘制矩形,而是在捕获的图像上绘制。当用户调用您的工具时需要发生的一系列事件是:

  1. 捕获整个桌面
  2. 创建一个屏幕大小的无边框窗口(或跨越所有屏幕的窗口,可能在这里使用此方法),并将映射到屏幕位置/尺寸的单独图像设置为各自的屏幕截图。
  3. 允许用户使用此处的代码在您的表单上进行橡皮筋选择。
  4. 一旦用户完成选择区域,创建一个与用户选择一样大的位图。
  5. 找到用户矩形与图像的交点
  6. 将这些区域一一复制到您在步骤 4 中创建的图像。
  7. 保存此图像。
  8. 喜极而泣。
于 2012-05-08T19:34:21.830 回答