TIPSアプリケーション画面のハードコピーを保存するには?デジタルアドバンテージ2004/05/07Windowsアプリケーションで画面のキャプチャ(画面のハードコピーの取得)を行い、それをファイルに保存する場合には、その機能を独自に実装する必要がある。TIPS:「アクティブウィンドウだけをキャプチャする方法」で解説されている)。Screen]キーによる方法をプログラムから実行することにより、画面キャプチャをファイルに保存するという機能を簡単にアプリケーションに追加することができる。このための具体的な手順は次のようになる。Screen]キーを自分自身に送るクリップボードに格納されたキャプチャ画像を取得する取得した画像をファイルに保存するこの手順のうち、2.と3.については「TIPS:クリップボードからデータを受け取るには?」と「TIPS:画像をファイルに保存するには?」で解説しているので、詳しくはそちらを参照していただきたい。アプリケーションへのキーストロークの送信アプリケーションへのキー入力の送信は、SendKyesクラス(System.Windows.Forms名前空間)のSendWaitメソッドを使用すればよい。このメソッドは、パラメータで指定されたキーストロークをアクティブなアプリケーションに送信し、それが処理されるまで待機する(これにより、ユーザーがアプリケーションに対してキー入力を行った場合と同等な状況を作り出すことができる)。SendWaitメソッドのパラメータには、送信するキーストロークを文字列として記述する。Screen]キーなどの特殊なキーは、“{PRTSC}”のように、あらかじめ定められたコードにより記述できる(コードの一覧はリファレンス・マニュアルのSendKeysクラスの項目に記載されている)。[Alt]キーとの組み合わせとして送信する場合には、そのコードの前に“%”を付ければよい。Screen]キーの組み合わせをアプリケーションに送信するには、次のような記述となる*。Screen]キーだけを送信しても、そのアプリケーション単体の画面キャプチャが行えるようである(全画面のキャプチャとはならない)。画面キャプチャをファイルに保存するサンプル・プログラム画面キャプチャ機能を追加したWindowsアプリケーションを実際に作成してみよう。ここでは、フォーム上に配置した[画面キャプチャ]ボタンが押された場合に、画面のハードコピーを「c:\screen.jpg」というファイル名のJPEGファイルとして保存するものとする。.NETでWindowsアプリケーションのプロジェクトを作成し、次の図のようにTextプロパティを「画面キャプチャ」に設定したButtonコントロールを適当な位置に配置する。キャプチャされたことが確認しやすいように、ここではボタン以外にもいくつかのコントロールをフォームに配置している。[画面キャプチャ]ボタンと適当なコントロールを配置したWindowsフォーム次に、いま配置した[画面キャプチャ]ボタンをダブルクリックし、次のコードを記述する。Sub[画面キャプチャ]ボタンをダブルクリックして記述するコード(VB.NET)プログラムを実行して[画面キャプチャ]ボタンを押せば、Cドライブのルート・ディレクトリに「screen.jpg」というJPEGファイルが作成されているはずだ。Jigsaw(ジグソー)により自動抽出したものです。例外の処理時には何らかの理由で、キャッチした例外をリスローしなければならないときがある。ジャグ配列とは「配列の配列」を表す用語。