SendKeysメソッドを利用してスクリーンキャプチャを取得する
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);
}
}
説明
SendKeys.SendWait("^{PRTSC}");
でプログラムからキーを送信します。 "^{PRTSC}"は Ctrl+PrintScreen キーとなります。
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);
にて画像データを取り出し、c:\dataに screen3.bmpという名前で保存します。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用