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.5 - ボタン一押しで、最前面Windowをキャプチャし画像ファイルを保存する。


Zoom Meetingsをはじめとするビデオ・コミュニケーションが一般的になり、業務レベルのミーティングから、多数の観客が同席するカンファレンスまでもがオンラインで実施される時代になった。

特にカンファレンスでありがちなのは、プレゼンテーションを伴いながら、その資料を配布しない場合だ。そのようなカンファレンスで、「この画面はメモしておきたい!」と思った瞬間、

  1. Alt + Ctrl + Print Screen押下
  2. ペイントを起動
  3. クリップボードからペイントに貼り付けにコピーして、画像
  4. 名前を付けて保存

などとやっている時間はない。「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

機能

Print Screenボタン押下で、スクリーンショットを直接ファイル出力する。
Ver 1.5から、選択した矩形領域のキャプチャにも対応した。

1 push snap Print Screenボタン押下で、最前面windowをキャプチャ、ファイル出力。
Crop snap マウスの左ボタンを押しながら矩形領域を選択、選択した領域をキャプチャ、ファイル出力。
以後、モードを切り替えるまで、Print Screenボタン押下で、該当領をキャプチャ、ファイル出力。
入力無効化 一切の物理入力を受け付けたくない場合に利用
キーボード入力を一切無視する。
マウス入力を一切無視する。

使い方


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

Information


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

Save To...


キャプチャ画像を保存するフォルダを指定する。

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

Image format


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

Start - 1 Push snap

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

アイコンの色 キーボード・イベント
放置中
オレンジ 監視中

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

Pauseキーを押下すると、キーボード・イベントの監視を中止する。アイコンの色がオレンジから白へ変化する。これはメニュー「Stop」を選択したのと同じ処理だ。

Start - Crop snap


このツールを選択すると、領域指定のために画面が暗転する。マウスの左ボタンを押下しながらマウスを動かすと、白い領域が変化していく。左ボタンを離すと、指定領域がキャプチャされ、その画像が指定のフォルダへ保存される。
モードを変更するまで、Print Screenキー押下で、指定領域がキャプチャされ、その画像が指定のフォルダへ保存される。

Pauseキーを押下すると、キーボード・イベントの監視を中止する。アイコンの色がオレンジから白へ変化する。これはメニュー「Stop」を選択したのと同じ処理だ。

指定領域を変更したい場合は、Pauseキー押下、あるいはメニュー「Stop」を選択し、改めて「Start - Crop snap」を選択する。

Start - Ignore key type

一切のキーボード入力を無効化する。
マウスは利用可能。

Start - Ignore key type

一切のマウス操作を無効化する。
キーボード操作は可能。

Stop

「Start - ***」で開始した機能を停止する。

Close

ツールを終了する。

余談

Ver 1.4からの進歩

機能を追加しながらコードを書き換えていくと、神経質な性格が災いし、余計なところに意識が向かい始める。

  • グローバル変数的なものは、いっそ全てをPropertiesにまとめてはどうか?
  • Propertiesの変数名を大文字で統一したい
  • エイリアスを定義してProperties~の記述を短くできないか?
  • フォームの名称を変更したい

などなど

思いつくまま、不用意に対応すればトラブルの原因になるだけでなく、最悪の場合、思考が追いつかずにプログラムを破綻させてしまうこともある。
より良い方向性に気付くのは良いことだが、このようなことは進歩と呼べるのだろうか…

紹介してくれた海外オンライン・メディア

次の海外オンライン・メディアが、1 Push Snap Ver 1.4を取り上げてくれた。
www.softpedia.com
www.01net.com

また、これらは何らかの自動登録の結果と思うのだが、ダウンロード・サイトにも掲載されている。
mujsoubor.cz
www.stahuj.cz
softmania.sk