用c#捕获Windows窗体屏幕截图

本文关键字:窗体 屏幕截图 Windows 捕获 | 更新日期: 2023-09-27 18:00:44

我在一个项目(应用程序)中有一些表单,在主表单中有一个按钮(捕获按钮)当我点击捕获按钮我的程序捕获屏幕截图所有其他形式

其他形式可能会最小化或尚未显示!或在主窗体后面

我使用这个代码

Form1 theForm = new Form1();                           
using (var bitmap = new Bitmap(theForm.Width, theForm.Height))
{
       theForm.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
       bitmap.Save(@"c:'TEST.bmp");
}

它工作正常,但在捕获的图像中没有显示表单控制

当表单没有显示、最小化或隐藏在另一个表单后面时,我如何捕捉一些表单?

谢谢

用c#捕获Windows窗体屏幕截图

试试这个

 Rectangle bounds = Screen.GetBounds(Point.Empty);
 using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
 {
    using (Graphics g = Graphics.FromImage(bitmap))
    {
       g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
    }
    bitmap.Save("c://My_Img.jpg", ImageFormat.Jpeg);
 }

看看这里->http://www.codeproject.com/Articles/20651/Capturing-Minimized-Window-A-Kid-s-Trick

如果我理解正确的话,你想要截屏所有打开的应用程序,最小化的,最大化的,最上面的和非最上面的。

这篇文章基本上描述了如何获得所有打开窗口的所有句柄,maximum->screen->minimize。

您可以使用它将所有应用程序设置为不最小化,注意哪些应用程序被最小化,然后在截屏后将其最小化。