我正在用 C# 开发一个应用程序,想知道在我们只知道窗口句柄的情况下如何获取任何窗口的屏幕截图图像。我试图实现的功能是当我只知道它的窗口句柄时能够复制任何窗口的屏幕截图(它可以是整个应用程序或应用程序内的控件)。
示例:我正在运行计算器应用程序和 Spy++。当我使用 Spy++ 的查找窗口功能并将鼠标悬停在计算器的不同按钮上时,它会显示不同的窗口句柄。假设我将鼠标悬停在计算器中的“9”按钮上。现在我知道它的窗口句柄,我只想获取“9”按钮的图像。如果我有完整应用程序的窗口句柄,那么我希望能够只获取该应用程序的屏幕截图。类似于 Alt+PrintScr。
最佳答案
您需要使用 GetWindowRect .
就像this example中显示的一样.
然后你可以使用Graphics.CopyFromScreen如本 SO 帖子所示 c# Take a screenshot of specific area .
将它们放在一起,您调用 GetWindowRect,它接受一个 HWnd 来获取您想要的窗口的 rect。然后将这些 rect 值与 CopyFromScreen 一起使用来捕获图像。
关于c# - 当我们只知道窗口句柄时如何获取窗口图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22540601/