Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

1 Push Snap Ver 1.3 - ボタン一押しで、最前面Windowをキャプチャし画像ファイルを保存する。

1 Push Snap Ver 1.3 - ボタン一押しで、最前面Windowをキャプチャし画像ファイルを保存する。

f:id:espio999:20211223211549p:plain
Zoom Meetingsをはじめとするビデオ・コミュニケーションが、日常利用において何も例外的な存在ではない時代となった。それはオンライン・ミーティングに限らず、大人数が出席する、いわゆるカンファレンスでも用いられている。

カンファレンスの中には、プレゼンテーションを伴う講演でありながら、講演資料を配布しない場合がある。そのような講演中、「この画面はメモしておきたい!」と思った場面ですかさず、Print Screenキーを一押しすれば、指定のフォルダにキャプチャ画像が出力される。

実際のところ、すでに同様の機能を提供するフリーウェアが存在する。しかし、気付いたときには無反応、クラッシュしており、キャプチャしているつもりが全て無駄、というトラブルを度々経験した。

そのような必要性、事情を背景に自作したツールが「1 Push Snap」だ。

この投稿では、そのツールの使い方を紹介する。

1 Push Snap

このツールはオープンソースで作成しており、C#で記述している。
実行には.NET Framework 4.8を必要とする。

Ver 1.2から、Vectorでもダウンロードできるようになった。しかし掲載までのタイムラグがある。
www.vector.co.jp

確実に最新版がダウンロードできるのはGitHubだ。はてなブログのキャッシュは「Version 1.2」を表示しているかもしれないが、リンク先には確実に最新版が掲載されている。
github.com

使い方

f:id:espio999:20220112230457p:plain
実行ファイル「1PushSnap.exe」を実行すると、タスクバーにアイコンが表示される。右クリックすると、コンテキスト・メニューが表示される。

Information

f:id:espio999:20220112230454j:plain
キャプチャ画像(JPEGファイル)が出力されるフォルダを確認できる。
ユーザー・フォルダ(%userprofile%)をデフォルトの保存先としている。これはメニュ「Save To...」で変更できる。

Save To...

f:id:espio999:20220112230501j:plain
キャプチャ画像を保存するフォルダを指定する。

もし画像ファイル出力時に、指定したフォルダが存在していなかった場合は、強制的にユーザー・フォルダへ画像出力する仕様だ。エラー表示ではなく、あくまでも画像ファイルを出力することを最優先としている。

Image format

f:id:espio999:20220112230451j:plain
キャプチャ画像の出力フォーマットを指定する。初期状態ではJPEGが選択されている。
次のいずれかのフォーマットを選択できる。

Start

このツールはキーボード・イベントを監視する。メニュー「Start」で監視を始める。

監視状態では、アイコンの色が白からオレンジへ変化する。この状態でPrint Screenキーを押下すると、そのときの最前面Windowがキャプチャされ、その画像が指定のフォルダへ保存される。

Stop

キーボード・イベントの監視を中止する。次のいずれかの操作でキーボード・イベントの監視を停止する。

  • メニュー「Stop」を選択
  • Pauseキー押下

監視しない状態では、アイコンの色がオレンジから白へ変化する。

Close

ツールを終了する。

余談-Ver 1.2からの進歩

タスクバーのアイコンを変更した。シンプルで状態確認しやすくなったと思う。

  • イベント監視状態でPauseキーを押下すれば、監視停止
  • 監視停止状態でPauseキーを押下すれば、監視再開

このようにPauseキーをスイッチ代わりに出来れば便利、と考えたのだが、これは「よく考えなくても」矛盾したアイデアだった。
そのそも監視停止状態なのだから、Pauseキーを押したところで、プログラムはそれを検知できないのだから。