日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2022-07-23 23:44:53

Re①:アクティブ窓をスクショする時のサイズ反映について

TKI さん

サイズを変更した後に画面クリアをして、その後窓キャプチャでいけると思います。
内部的な描画サイズの変更タイミングが画面クリアの時とかになされる~みたいな話らしいです。

~上略~
 保存イメージのサイズは「0,0,{窓寸法}」
 保存イメージを画面クリア。 //←ここ
 保存イメージへ「{窓名}」を窓キャプチャ。
 保存イメージを保存ファイル名に画像保存。


スクリーンショットをとるツールを作成しようとしています。

動作内容としては、
 ①アクティブな窓のサイズを取得
 ②保存イメージを一旦そのサイズに変更する(xとyの値を代入)
 ③キャプチャ実施してJPG書き出し
といった流れです。

下記のように作成して、一通り動作はできているのですが、
連続動作をさせているとき、保存イメージのカンバスサイズの情報がうまく反映されず、ひとつ前の動作時のサイズが残ってしまう、という状態になります。

たとえば、
1枚目:800x600 → きちんと800x600で書き出される。
2枚目:420x330 → 800x600で書き出される(1枚目の設定が引きずられる)。
3枚目:300x400 → 420x330で書き出される(2枚目の設定が引きずられる)。
4枚目:300x400 → 300x400で書き出される(3枚目の設定が引きずられる)。
...
といった具合です。

同じ窓を開いたままで連続実行すればカンバスサイズは正常なものが取れるので、
実用上は問題ないといえばないのですが、ものすごく気持ち悪いです。

ご助力いただけると幸いです。よろしくお願いいたします。

-------------
 保存ファイル名=「{デスクトップ}スクショ{連番}.jpg」
 窓アクティブタイトル取得。
 窓名はそれ。
 窓名のX,Yを窓ハンドル画面座標計算
 窓寸法はそれ。
 保存イメージのサイズは「0,0,{窓寸法}」
 保存イメージへ「{窓名}」を窓キャプチャ。
 保存イメージを保存ファイル名に画像保存。
 保存イメージを画面クリア。
 連番=連番+1
 1秒待つ
-----------------


(編集パスワード送信)

子記事

親記事 (No.1415)
返信した記事(元) (No.1415)

この内容(No.1416)に返信

この内容(No.1416)をダウンロード

この内容(No.1416)のテキスト表示





www.eznavi.net