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

时间:2009-12-31 20:47:47

标签: c# .net image forms graphics

我正在使用Visual Studio在C#中创建一个非常简单的应用程序,所以我正在使用该Forms包。我需要访问下面所有内容的图像,以便我可以操作图像。我怎么能这样做?

它不一定非常实时,因为我可能只是说10fps就可以进行轮询。

2 个答案:

答案 0 :(得分:3)

您可以使用Graphics.CopyFromScreen,但在调用之前需要隐藏窗口,否则它将出现在图像中。

答案 1 :(得分:3)

您可以使用Interop来获取“桌面窗口”的钩子,如果这是您的意思,然后您可以使用它来获取您的屏幕截图...此链接可能有所帮助:

Getting the Desktop Window from .NET

另一个选项(你说WinForms,右边)是创建一个占位符Bitmap并使用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);