C#での画面ハードコピー
- 題名: C#での画面ハードコピー
- 著者: Odagirizm
- 日時: 2003/08/24 18:53:17
- ID: 447
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: C#での画面ハードコピー
- 著者: Odagirizm
- 日時: 2003/08/24 18:56:30
- ID: 448
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: C#での画面ハードコピー
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2003/08/25 2:07:07
- ID: 451
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: 解決しました。ありがとうございます。
- 著者: Odagirizm
- 日時: 2003/08/25 22:31:51
- ID: 457
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: C#での画面ハードコピー
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2003/08/26 3:16:29
- ID: 458
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: C#での画面ハードコピー
- 著者: Odagirizm
- 日時: 2003/08/26 21:33:08
- ID: 464
- この記事の返信元:
- この記事への返信:
- ツリーを表示
はじめまして。いつも拝見させていただいております。Odagirizmと申します。
私は今、C#で一定時間ごとに画面のキャプチャをとるというアプリの作成途中なのですが、行き詰まってしまいました。
そこで皆様の知恵をお貸しいただきたく書き込みいたしました。
画面のハードコピーを取る方法はSendKeys.Send("%{PRTSC}")で実行しています。
以下、ソース中心部分です。
このソースはTimer_Tickの中で一定時間ごとに行われるようにしています。
// [Alt] + [PrintScreen]キーを押す
SendKeys.Send("%{PRTSC}");
Application.DoEvents();
IDataObject changedData = Clipboard.GetDataObject();
/*
* ここの処理が正しく行われないことがあるのです
* */
Image captureImage = (Image)changedData.GetData(DataFormats.Bitmap, true);
この処理を実行すると最初の数回はただしくキャプチャできているのですが、最初の数回を過ぎるとコメント部分のGetDataメソッドが正しく行われずにnullが吐き出されてしまいます。
Windowsのクリップブックを見ながら確認してみるとキャプチャが正しく行われなくなった時クリップブックには「クリップブックでは現在の形式の情報は表示されないか、またはメモリ不足のため情報が表示されません。」的なメッセージが表示されていました。
クリップボードからデータが正常に取得できなくなる理由をご存知の方、
もしくは「画面のハードコピーならこんな方法でできるよ」という方がいましたら
ぜひ教えてください。よろしくお願いします。