Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 如何在.NET中访问桌面缓冲区的映像?_C#_.net_Image_Forms_Graphics - Fatal编程技术网

C# 如何在.NET中访问桌面缓冲区的映像?

C# 如何在.NET中访问桌面缓冲区的映像?,c#,.net,image,forms,graphics,C#,.net,Image,Forms,Graphics,我正在用Visual Studio用C#制作一个非常简单的应用程序,所以我使用的是Forms软件包。我需要访问它下面所有东西的图像,以便我可以操纵图像。我该怎么做 它不需要非常实时,因为我可能会轮询它不超过10fps。您可以使用图形。CopyFromScreen,但您需要在调用之前隐藏窗口,否则它将显示在图像中。您可以使用Interop获得“桌面窗口”的挂钩,如果这就是你的意思,然后你可以用它来获得你的屏幕截图…这个链接可能会有帮助: 另一个选项(您说的WinForms,右)是创建一个占位符位

我正在用Visual Studio用C#制作一个非常简单的应用程序,所以我使用的是Forms软件包。我需要访问它下面所有东西的图像,以便我可以操纵图像。我该怎么做


它不需要非常实时,因为我可能会轮询它不超过10fps。

您可以使用
图形。CopyFromScreen
,但您需要在调用之前隐藏窗口,否则它将显示在图像中。

您可以使用Interop获得“桌面窗口”的挂钩,如果这就是你的意思,然后你可以用它来获得你的屏幕截图…这个链接可能会有帮助:

另一个选项(您说的WinForms,右)是创建一个占位符位图,并使用
Graphics.CopyFromScreen
方法:

int screenWidth = 1024;
int screenHeight = 768;
Bitmap holder = new Bitmap(screenWidth, screenHeight);
Graphics graphics = Graphics.FromImage(holder);
graphics.CopyFromScreen(0,0,0,0,new Size(screenWidth, screenHeight), CopyPixelOperation.SourceCopy);

链接断开,但看起来有一个新链接: