tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: アクティブ ウィンドウのスナップショットを取得
投稿日: 2011/03/01(Tue) 13:01
投稿者花ちゃん
> あるプログラムのウィンドウのスナップショットを数分の間隔で取得し
> ファイルにセーブしたいと思います。
>
> 逆引きヘルプ273とタイマーコントロール028を元させていただき試しました。
> Command1ボタンを押すとタイマーがスタートし、時間が着たら
>  Call SaveWindowPic(True, False) を呼ぶようにしました。
>
> 結果CommandボタンのFormやVB6の編集画面は問題なくsaveされるのですが
> マイドキュメントのフォルダーや目的のプログラムのWindowは
> "保存出来ませんでした。"のMSGがでて取得できません。
>
> しかしたまに取得できるときがあります。
> 不思議なのは "保存出来ませんでした。"と表示されながらsaveされる
> 時があるのです。
>
> すいませんが対処方法教えてください。

実行環境等を書いて下さい。

又、問題を切り分けて下さい。
アクティブなウィンドウは、取得できないが、全画面なら取得できるとか?
手動で、PrintScreen キー を押した場合は、目的の画面がクリップボードにコピー
できているのか、いないのか?

No.273 のサンプルは、プログラム上から PrintScreen キー を操作して、それによって
クリップボードにスナップショットがコピーされるので、クリップボードに画像が
あれば、それを取得して保存しているので、どこまで、うまく動作していて
どこから、(どこが)動作がうまくしていないかを調べて下さい。
まず、PrintScreen キー が押されているかどうか?
クリップボードに画像が入っているのかどうか?
アクティブなウィンドウ を取得したいのなら、PrintScreen キー が押された時に
そのウィンドウがアクティブ になっていなければなりません。
クリップボードを利用した場合、クリップボードに転送されたタイミングと取得する
タイミングが合わず、画像がクリップボードに入っていないとされ取得できない場合も
あります。
PrintScreen キー を押してから、少し時間をおいてから取得したら取得できるとかも
調べてみてください。

>不思議なのは "保存出来ませんでした。"と表示されながらsaveされる
>時があるのです。
そのような事は、プログラム上もあり得ません。
IF 文で保存とメッセージの表示は同時に行うようにはなっていません。
保存された時とメッセージが表示された操作は別の操作の時に起きた事だと思います。

[F8]キー等で、プログラムを1ステップづつ実行してどのようにコードが実行されて
いるのか、その時にクリップボード内の画像はどうなっているのかどうかとかをよく
調べてみてください。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。