我需要制作一个应用程序,只要按下某个特定按钮,就会捕获当前屏幕的快照。
我搜索了很多,但我只找到了如何捕获当前窗口。
请你帮我弄清楚如何在.NET中做到这一点?
我们可以通过点击打印屏幕并使用油漆保存图像来手动完成此操作。我需要做同样的事情,但我想用一个程序来做。
答案 0 :(得分:51)
使用.NET Framework获取屏幕截图当然是可能的。最简单的方法是创建一个新的Bitmap
对象,然后使用Graphics.CopyFromScreen
method绘制对象。
示例代码:
using (Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height))
using (Graphics g = Graphics.FromImage(bmpScreenCapture))
{
g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
Screen.PrimaryScreen.Bounds.Y,
0, 0,
bmpScreenCapture.Size,
CopyPixelOperation.SourceCopy);
}
警告:此方法无法用于分层窗口。 Hans Passant的回答here解释了在屏幕截图中获取这些内容所需的更复杂的方法。