如何将当前屏幕捕获为图像?

时间:2009-04-03 18:24:36

标签: c# winforms .net-3.5 screenshot

我希望为用户添加捕获应用中当前屏幕并通过电子邮件发送的功能。我有一个非技术性的用户群,所以我需要尽可能简单。我打算让他们点击一个名为Help Me的菜单项!然后它将捕获当前的应用程序屏幕,希望作为jpg或png,然后打开Outlook并将图像添加为附件。

我正在阅读关于代码项目的这篇文章ScreenCapture,但它有点陈旧,并不是我想要的,所以我想我会检查是否有更好的方法来做到这一点。

我如何开始这个?是否有图书馆或内置功能足够?

谢谢!

2 个答案:

答案 0 :(得分:13)

你链接的帖子是正确的方法,他们只是使它非常复杂。您可能希望使用Graphics.CopyFromScreen

Rectangle bounds = this.Bounds;

using(Bitmap ss = new Bitmap(bounds.Width, bounds.Height))
using(Graphics g = Graphics.FromImage(ss))
{
  g.CopyFromScreen(this.Location, Point.Empty, bounds.Size);
  ss.Save("test.jpg", ImageFormat.Jpeg);
}

答案 1 :(得分:3)

检查Graphics.CopyFromScreen方法。