可能是重复问题:
如何在位图中捕获屏幕?
我需要制作一个应用程序,每当按下特定按钮时,它就会捕获当前屏幕的快照。
我已经搜索了很多,但只找到了如何捕获当前窗口的方法。
请问你能帮我找出如何在.NET中实现此功能吗?
我们可以通过按“Print Screen”键并使用画图工具保存图像来手动完成此操作。但我想用程序来完成同样的事情。
可能是重复问题:
如何在位图中捕获屏幕?
我需要制作一个应用程序,每当按下特定按钮时,它就会捕获当前屏幕的快照。
我已经搜索了很多,但只找到了如何捕获当前窗口的方法。
请问你能帮我找出如何在.NET中实现此功能吗?
我们可以通过按“Print Screen”键并使用画图工具保存图像来手动完成此操作。但我想用程序来完成同样的事情。
使用.NET Framework可以轻松地获取屏幕截图。最简单的方法是创建一个新的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在这里的答案解释了获取屏幕截图中这些窗口所需的更复杂的方法。
Timer
并处理它的Tick
事件。在该事件中,放置我的答案中的代码。瞬间完成截图。 - Cody Gray