使用.NET [重复]捕获屏幕截图

问题描述 投票:38回答:1

可能重复: How May I Capture the Screen in a Bitmap?

我需要制作一个应用程序,只要按下特定按钮就可以捕获当前屏幕的快照。

我搜索了很多,但我只找到了如何捕获当前窗口。

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

我们可以通过点击打印屏幕并使用油漆保存图像来手动执行此操作。我需要做同样的事情,但我想用一个程序来做。

c# .net screenshot
1个回答
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解释了在屏幕截图中获取这些内容所需的更复杂的方法。

© www.soinside.com 2019 - 2024. All rights reserved.