単体テストのために私たちのアプリのスクリーンショットが必要です。 CaptureScreen()
とCopyFromScreen()
は何とかアプリを無視し、空のデスクトップの写真を返す。だから我々は偽PrtScn
キーストロークにこれを書いた:自動 'PrtScn'キーストロークは 'Alt + PrtScrn'のように動作します
public static Bitmap GetAltScreenshot()
{
Clipboard.Clear();
SendKeys.SendWait("{PRTSC}");
while (!Clipboard.ContainsImage())
{
Thread.Sleep(500);
}
return new Bitmap(Clipboard.GetImage());
}
Alt
は、キーストロークの一部ではないので、これは画面全体のビットマップを返す必要があります。しかし、何とかこのスニペットはフォーカスされたウィンドウを返します。それは問題ありませんが、どのようにして解決するのか分かりません。
これは、モニタ全体ではなく、フォーカスされたウィンドウのショットを返すのはなぜですか?
http://stackoverflow.com/questions/5049122/how-to-capture-the-screen-shot-using-net –
@GeorgeJohnston私は 'g.CopyFromScreen'を使って試してみましたか?以前と同様に、私たちが見つけることができる他のすべてのキャプチャ方法。彼らはすべて私のマシンでうまくいったが、会社内の他のマシンでは奇妙な結果を出した。 – 4444
SendKeysクラスがAlt + PrtScnキーの組み合わせを意味する "{PRTSC}"キー文字列を解釈するだけかもしれませんか?また、フォーカスを手動で設定して全体のスクリーンにすることは可能でしょうか? [リンク](http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.sendwait.aspx)先頭へ戻る –