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

Ref*_*din 5 c# screenshot .net-3.5 winforms

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

我正在阅读这篇关于Code Project 的ScreenCapture帖子,但它有点老了,并不是我想要的所以我想我会检查是否有更好的方法来做到这一点.

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

谢谢!

Sam*_*uel 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);
}
Run Code Online (Sandbox Code Playgroud)