如何在只知道窗口句柄的情况下获得窗口的图像

本文关键字:情况下 窗口 图像 窗口句柄 | 更新日期: 2023-09-27 17:51:11

我正在开发一个c#应用程序,想知道如何获得任何窗口的屏幕截图图像,当我们只知道它的窗口句柄。我想要实现的功能是能够复制任何窗口的屏幕截图(它可以是整个应用程序或应用程序内的控件),当我只知道它的窗口句柄。

示例:我正在运行一个计算器应用程序和spy++。当我使用spy++的查找窗口功能并将鼠标悬停在计算器的不同按钮上时,它显示不同的窗口句柄。假设我将鼠标悬停在计算器的"9"按钮上。现在我知道它的窗口句柄,我想获得"9"按钮的图像。如果我有完整的应用程序的窗口句柄,那么我希望能够获得该应用程序的屏幕截图。类似于Alt+PrintScr

如何在只知道窗口句柄的情况下获得窗口的图像

你需要使用GetWindowRect。

就像这个例子中显示的那样。

然后你可以使用图形。@ # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

把所有这些放在一起,你调用GetWindowRect,它接受一个HWnd来获得你想要的窗口的rect。然后使用这些矩形值和CopyFromScreen来捕获图像。