Zoom Meetingsをはじめとするビデオ・コミュニケーションが、日常利用において何も例外的な存在ではない時代となった。それはオンライン・ミーティングに限らず、大人数が出席する、いわゆるカンファレンスでも用いられている。
ありがちなのは、プレゼンテーションを伴いながら、その資料を配布しない場合だ。そのようなカンファレンスで、「この画面はメモしておきたい!」と思った瞬間、
- Alt + Ctrl + Print Screen押下
- ペイントを起動
- クリップボードからペイントに貼り付けにコピーして、画像
- 名前を付けて保存
などとやっている時間はない。「1 Push Snap」では、Print Screenを一押しするだけで、
- あらかじめ指定しておいたフォルダに、
- あらかじめ指定しておいたフォーマットで、
- キャプチャ画像が保存される。
実際のところ、すでに同様の機能を提供するフリーウェアが存在する。しかし、気付いたときには無反応、クラッシュしており、キャプチャしているつもりが全て無駄、というトラブルを度々経験した。
そのような必要性、事情を背景に自作したツールが「1 Push Snap」だ。
この投稿では、そのツールの使い方を紹介する。
1 Push Snap
このツールはオープンソースで作成しており、C#で記述している。
実行には.NET Framework 4.8を必要とする。
Ver 1.2から、Vectorでもダウンロードできるようになった。しかし掲載までのタイムラグがある。
www.vector.co.jp
確実に最新版をダウンロードできるのはGitHubだ。はてなブログのキャッシュは古いバージョンを示しているかもしれないが、リンク先には確実に最新版が掲載されている。
github.com
使い方
実行ファイル「1PushSnap.exe」を実行すると、タスクバーにアイコンが表示される。右クリックすると、コンテキスト・メニューが表示される。
Information
キャプチャ画像が出力されるフォルダを確認できる。
ユーザー・フォルダ(%userprofile%)をデフォルトの保存先としている。これはメニュ「Save To...」で変更できる。
Save To...
キャプチャ画像を保存するフォルダを指定する。
もし画像ファイル出力時に、指定したフォルダが存在していなかった場合は、強制的にユーザー・フォルダへ画像出力する仕様だ。エラー表示ではなく、あくまでも画像ファイルを出力することを最優先としている。
Start - 1 Push screenshot
このツールはキーボード・イベントを監視する。メニュー「Start - 1 Push screenshot」で監視を始める。
アイコンの色 | キーボード・イベント |
---|---|
白 | 放置中 |
オレンジ | 監視中 |
監視状態では、アイコンの色が白からオレンジへ変化する。この状態でPrint Screenキーを押下すると、そのときの最前面Windowがキャプチャされ、その画像が指定のフォルダへ保存される。
Pauseキーを押下すると、キーボード・イベントの監視を中止する。アイコンの色がオレンジから白へ変化する。これはメニュー「Stop」を選択したのと同じ処理だ。
Start - Ignore key type
一切のキーボード入力を無効化する。
マウスは利用可能。
Start - Ignore key type
一切のマウス操作を無効化する。
キーボード操作は可能。
Stop
「Start - ***」で開始した機能を停止する。
Close
ツールを終了する。
余談-Ver 1.3からの進歩
キーボードにハンディ・クリーナーをかけたり、トラックボールの支持球周辺をブラッシングしたり、ボールをみがいたり...、入力機器を手入れするとき、その操作を無効にするための機能を実装した。
例によって、実装そのものは大した労力ではないのだが、その周辺事柄に悩まされ、時間を浪費することになった。スレッド処理に伴う「Cross-thread operation not valid」と、InvokeRequiredの活用は定番のイディオム的な存在だが、今回は違った。
Ver 1.3までは、フォームを表示していない。そのためInvokeRequiredがコントロール・チェーンをさかのぼってハンドルを見つけることができず、結果としてFalseが返される。*1
色々と試行錯誤した結果、フォームを非表示にするのではなく、隠すのがシンプルな解決策なのだ。
シングルトンとstaticについて、プログラムの書き方を整理した。