2022-07-23 23:48:23
Re①:アクティブ窓をスクショする時のサイズ反映について
①まず、「アクティブな窓のサイズ」が正しく取得されていませんよ~。 イメージのサイズが後追いで変化するので一見半端に機能しているかのようですが、それはどうも窓キャプチャした時に変わっているようで、ここの部分実は全く機能しておりません。 「窓ハンドル画面座標計算」は「HANDLEのウィンドウのX,Y座標を絶対座標「x,y」で得る」とゆう命令なので、コレで窓のサイズを取得 することはできません。 そして、窓ハンドルなんちゃら~という命令の引数は、窓のタイトルではなくてハンドルを指定しなきゃいけませんので、窓名とは別に「窓アクティブハンドル取得」で窓のハンドルを取得しなきゃいけません。 アクティブな窓のサイズを取得するには、「窓ハンドルサイズ取得」があります。 窓ハンドルサイズ取得は、位置情報込みで「X1,Y1,X2,Y2」の形式で返るので、窓の幅と高さを得るためには、「X2-X1」「Y2-Y1」とします。 ②保存イメージを一旦そのサイズに変更するには、これを直接保存イメージの幅と高さに代入してもいいし、元のコードのようにサイズに代入してもいいです。 こんなかんじ? #----------------------------------- 窓ハンドルは窓アクティブハンドル取得。 窓ハンドルの窓ハンドルサイズ取得。 窓寸法はそれを「,」で区切る。 #配列にする 窓幅は窓寸法[2]-窓寸法[0]。 #X2-X1 窓高さは窓寸法[3]-窓寸法[1]。 #Y2-Y1 保存イメージのサイズは「0,0,{窓幅},{窓高さ}」 #----------------------------------- が!!! コレでできるかと思ったらできなくって、まあまあはまりました>< ようやく分かったのは、画面クリアしたらサイズの変更が反映されるみたいなのねん。 元のコードで、後追いでサイズが変わっていたのも、窓キャプチャの後に画面クリアがあったからのようなんですよね(謎) なんかよく分かりませんが💦 ③キャプチャ実施してJPG書き出し とゆうわけで、最終的にはこうなりました。 #----------------------------------------------- 「F2」に「キャプチャ処理」をホットキー登録。 保存イメージとはイメージ。 ●キャプチャ処理 保存ファイル名=「{デスクトップ}スクショ{連番}.jpg」 窓アクティブタイトル取得。 窓名はそれ。 窓ハンドルは窓アクティブハンドル取得。 窓ハンドルの窓ハンドルサイズ取得。 窓寸法はそれを「,」で区切る。 窓幅は窓寸法[2]-窓寸法[0]。 窓高さは窓寸法[3]-窓寸法[1]。 保存イメージのサイズは「0,0,{窓幅},{窓高さ}」 保存イメージを画面クリア。 #サイズの変更を反映させる 保存イメージへ「{窓名}」を窓キャプチャ。 保存イメージを保存ファイル名に画像保存。 連番=連番+1 #----------------------------------------------- |