我们需要我们的应用程序的屏幕截图来进行单元测试。CaptureScreen()
并CopyFromScreen()
以某种方式忽略该应用程序并返回空桌面的图片。所以我们写了这个来伪造PrtScn
击键:
public static Bitmap GetAltScreenshot()
{
Clipboard.Clear();
SendKeys.SendWait("{PRTSC}");
while (!Clipboard.ContainsImage())
{
Thread.Sleep(500);
}
return new Bitmap(Clipboard.GetImage());
}
Alt
不是击键的一部分,所以这应该返回整个屏幕的位图。然而不知何故,这个片段只返回了焦点窗口。这很好,这解决了我们的问题 - 但我们不明白如何。
为什么这只会返回聚焦窗口的镜头,而不是整个显示器?