単体テスト用にアプリのスクリーンショットが必要です。CaptureScreen()
どういうわけかアプリをCopyFromScreen()
無視して、空のデスクトップの写真を返します。PrtScn
したがって、キーストロークを偽造するために次のように記述しました。
public static Bitmap GetAltScreenshot()
{
Clipboard.Clear();
SendKeys.SendWait("{PRTSC}");
while (!Clipboard.ContainsImage())
{
Thread.Sleep(500);
}
return new Bitmap(Clipboard.GetImage());
}
Alt
はキーストロークの一部ではないため、これは画面全体のビットマップを返す必要があります。しかし、どういうわけか、このスニペットはフォーカスされたウィンドウだけを返します。これで問題は解決しますが、方法がわかりません。
モニター全体ではなく、フォーカスされたウィンドウのみのショットが返されるのはなぜですか?