Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用c语言截图Windows窗体#_C#_Forms_Screenshot_Capture_Snapshot - Fatal编程技术网

C# 用c语言截图Windows窗体#

C# 用c语言截图Windows窗体#,c#,forms,screenshot,capture,snapshot,C#,Forms,Screenshot,Capture,Snapshot,我在一个项目(应用程序)中有一些表单,在主表单中有一个按钮(捕获按钮) 当我点击“捕获”按钮时,我的程序捕获了所有其他表单的截图 其他表单可能会最小化或尚未显示!或者在主要形式后面 我使用这个代码 Form1 theForm = new Form1(); using (var bitmap = new Bitmap(theForm.Width, theForm.Height)) { theForm.DrawToBitmap(bi

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

其他表单可能会最小化或尚未显示!或者在主要形式后面

我使用这个代码

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");
}
它工作正常,但在捕获的图像中不显示窗体控件

当表单未显示、最小化或隐藏在另一个表单之后时,如何捕获某些表单

谢谢

试试这个

 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);
 }
请看这里->

如果我理解正确的话,您希望截取所有打开的应用程序的屏幕截图,包括最小化、最大化、顶层和非顶层

本文主要介绍如何获取所有打开窗口的所有句柄,最大化->屏幕截图->最小化


您可以使用此选项将所有应用程序设置为不最小化,注意哪些应用程序被最小化,然后在截图后最小化这些应用程序。

请澄清您的问题<代码>但不要在捕获的图像中显示表单控件捕获的屏幕截图只是空表单,没有任何表单控件。我已经给了您一个解决方案,请尝试一下,让我知道它是否适合您!!!