午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

Pixcrenの不具合を少し解消、関連ウィンドウキャプチャとクリップボードの画像取得

Pixcren 1.4.2

スクショアプリ

f:id:gogowaten:20210925121032p:plain
Pixcren1.4.2



不具合修正

  • キャプチャ範囲のウィンドウ特殊1とウィンドウ特殊1+のときに、関係ない範囲がキャプチャされることがあったのを修正できたかも

  • キャプチャ時の挙動のクリップボード更新されたら保存で、 同じ画像が複数保存されてしまうことがあったのを修正

  • クリップボード更新時にアプリが落ちることがあったのを直した




キャプチャ範囲

f:id:gogowaten:20210925100051p:plain
キャプチャ範囲
関連ウィンドウもキャプチャする設定にしておいて
デスクトップの画面が
f:id:gogowaten:20210925100300p:plain
デスクトップの画面
エクセルのセルの書式設定のが最前面ウィンドウ、この状態の時にキャプチャすると


f:id:gogowaten:20210925100357p:plain
前回まで
エクセルとは関係ない範囲もキャプチャされることが多かった
今回のバージョンでは
f:id:gogowaten:20210925100719p:plain
今回の
正しい範囲をキャプチャできるようになったはず、すくなくともエクセル系(リボンメニュー)は問題なさそう

f:id:gogowaten:20210925103248p:plain
メモ帳
メモ帳も大丈夫

f:id:gogowaten:20210925103715p:plain
paint.net
paint.netも大丈夫そう

f:id:gogowaten:20210925102909p:plain
aviutl
aviutlは正しく取得できなかった
今の所aviutlだけかなあ




クリップボード更新時

f:id:gogowaten:20210925104519p:plain
クリップボード更新されたら保存
この設定のとき1回の更新で同じ画像が複数保存されることがあった、特にエクセルのセルのコピーでは4枚も保存されることがあったけど
f:id:gogowaten:20210925104929p:plain
セル範囲のコピー
f:id:gogowaten:20210925105042p:plain
セル範囲のコピーした結果
正しく1枚だけ保存された
f:id:gogowaten:20210925105216p:plain
実際に保存された画像
前回では4枚保存されたのは、1回のコピーなのに4回もの更新通知が来ていたからなんだけど、原因はかわからないので、使った解決?方法は単純にクリップボードの更新間隔時間をStopwatchクラスで測って、0.1秒未満だった場合は処理しないことにしただけ
なので1秒間に16回クリップボードにコピーしても、キャプチャできる画像は最大で10枚程度




ダウンロード先

https://github.com/gogowaten/ScreenCapture/releases/download/1.4.2/Pixcren1.4.2.zip

github.com




作成動作環境

動作に必要なのは.NET 5がインストール済みのWindowsで、.NET Frameworkだけでは動かないはず




日記

関連ウィンドウのRect取得部分のコードがつぎはぎだらけのカオス状態でもうわからん、これ以上はムリかも
あと気になるのは設定ファイルを読み込んだときにウィンドウの位置は無視したほうがいいかなと、クリップボードから取得時の動作で、保存はしないでプレビューウィンドウに追加するだけの設定があったほうがいいかも




関連記事

次回のPixcrenは明日 gogowaten.hatenablog.com



前回のPixcrenの記事は3日前
gogowaten.hatenablog.com

最初のPixcrenは270日前
gogowaten.hatenablog.com