捕获使用.NET的屏幕截图

可能重复:
如何在一个位图中捕获屏幕?

我需要创build一个应用程序,捕获当前屏幕的快照,只要一个特定的button被击中。

我search了很多,但我只发现如何捕获当前的窗口。

你能帮我弄清楚如何在.NET中做到这一点?

我们可以通过点击打印屏幕并使用颜料保存图像来手动完成此操作。 我需要做同样的事情,但我想用程序来做。

使用.NET Framework获取屏幕截图当然是可能的。 最简单的方法是创build一个新的Bitmap对象,并使用Graphics.CopyFromScreen方法进行绘制。

示例代码:

 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) 在这里的答案解释了让你的屏幕截图中需要的更复杂的方法。