SendKeysメソッドを利用してスクリーンキャプチャを取得するコードを紹介します。
.NET Frameworkでは こちらの記事で紹介しているCopyFromScreenメソッドを利用する以外に、PrintScreenキーをプログラムから送信しスクリーンキャプチャを取得する方法もあります。
private void button2_Click(object sender, EventArgs e)
{
//SendKeys.SendWait("%{PRTSC}");//アクティブウィンドウをスクリーンキャプチャする場合
SendKeys.SendWait("^{PRTSC}");//全画面をスクリーンキャプチャする場合
IDataObject data = Clipboard.GetDataObject();
if (data.GetDataPresent(DataFormats.Bitmap)) {
Bitmap bmp = (Bitmap)data.GetData(DataFormats.Bitmap);
bmp.Save(@"c:\data\screen3.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
}
}
でプログラムからキーを送信します。 "^{PRTSC}"は Ctrl+PrintScreen キーとなります。
にてクリップボードからデータを取得します。
にてクリップボードから取得したデータがビットマップ形式か判定し、ブットマップ形式であるならば
にて画像データを取り出し、c:\dataに screen3.bmpという名前で保存します。