今回は、Bluetoothリモートカメラシャッターと、プロデルを使って、ボタン一つで、よくする操作が一発でできる便利ツールを作ってみたいと思います。
Bluetoothリモートカメラシャッター
AndroidやiPhoneなどスマートフォン向けに、カメラシャッターボタンがいくつか売られています。
Bluetoothリモートカメラシャッターは、Bluetoothという無線の通信規格を使って、スマフォのカメラのシャッターを押すことができる小物です。
リモートカメラシャッターは、AndroidやiPhone専用ですが、これをBluetoothに対応したWindows PCとペアリングして、ボタンが押されたことをプロデルで受け取ってみようと思います。
今回使用するBluetoothカメラシャッター
ネットを見ると、安いシャッターボタンがダイソーで売られているらしいので、いくつかのお店をまわったのですが、残念ながら見つかりませんでした。。。
その代わりに、池袋の家電量販店で自分撮り用のシャッターボタンを買ってみました。自撮り棒のコーナーに置いてありました。
なお、有線タイプのシャッターボタンも売られていますが、有線タイプはPCに接続できないため、今回のツール作りには使えません。Bluetooth対応のものを必ず使ってください。また、ここで紹介していない製品で、使用する際に専用のアプリが必要な物は使えない可能性もあるので、よくご確認ください。
リモートカメラシャッターの解析
今回使用するエレコムの自撮りシャッターをPCにペアリングしてつなげてみようと思います。ペアリングの方法は、Bluetooth対応マウスやキーボードと同じです。取扱説明書を参考にしてペアリングしてください。
ペアリングが成功すると、PCではキーボードとして認識されます。
早速、ボタンを押してみると…
ボリュームが上がります… (下がりません)
どうやら、音量大のキーに対応しているようです。
プロデルでツールを作るにあたって、キーボードで押したキーの名前を調べるプログラムがあると便利です。プロデル公式サイトのプログラム掲示板に、キー名を調べるプログラムが掲載されていますので、こちらを使うと便利です。
実際に実行して、カメラシャッターを押すと、「VolumeUp」という文字列が表示されます。
プロデルでVolumeUpキーが押されたことを知るには
では、プロデルで実験プログラムを作ってみます。PC上ではリモートカメラシャッターがキーボードとして認識されています。
通常プロデルでキーボードで押したキーを調べるには、「キーが押された時」手順を使います。この手順の中で「この時のキー名」を調べて、「VolumeUp」だった時に、シャッターが押されたと判定できます。
ただ、残念ながら今回はこの方法ではうまくいきませんでした。
VolumeUpキーは、すでにWindowsで音量を大きくするためキーとして登録されています。そのため、シャッターを押すと、プロデルが反応する前に音量が大きくなってしまいます。これでは、シャッターを押して機能を呼び出した後に、音量を下げる必要があるので不便です。
「ホットキー」を使う
プロデルでは「ホットキー」種類を使って、特定のキーを押したときに、プログラムを実行させることができる機能があります。ホットキーに、「VolumeUp」を割り当てることで、音量を大きくする代わりに、プロデルの手順に書いたプログラムを実行させることができます。
ホットキーを使って「VolumeUp」を押したときに、プログラムを実行させるには、次のようなプログラムを書きます。このプログラムを実行して、カメラシッターのボタンを押すと、その時の時刻が表示されます。
カメラシャッターというホットキーを作る カメラシャッターのキーは、「VolumeUp」 カメラシャッターを登録する 待機する カメラシャッターが押された時の手順 時刻を報告する 終わり
ホットキーは、プログラムの実行中、指定されたキーを監視し続けます。また、プロデルを最小化したり、別のアプリに切り替えているときでも、登録したキーが押されれば、プロデルのプログラムが実行されます。この点がホットキーの便利な所です。
1. シャッターを押したら「アプリを起動する」
「カメラシャッターが押された時」の手順の内容を変えれば、自分のやりたいことをカメラシャッターを押すだけで実行できます。これからいくつかの例を紹介します。
「起動する」手順を使うことで、指定したデスクトップアプリを起動できます。普段使うテキストエディタや画像加工ツールなどのプログラムファイルのパスを指定すると、そのアプリをカメラシャッターで起動できます。
カメラシャッターが押された時の手順 「notepad.exe」を起動する 終わり
2. シャッターを押したら「Yahoo!ニュースを開く」
「開く」手順で、URLを指定すると、既定のブラウザでそのウェブページを開いてくれます。Yahoo!ニュースの代わりに、GmailやOneDriveなどのアドレスを入れて使うのも便利です。
カメラシャッターが押された時の手順 「https://news.yahoo.co.jp/」を開く 終わり
3. シャッターを押したら「定型文を入力する」
「入力する」手順で、指定した文字列をカーソルがある位置に入力できます。ホットキーは、プロデル以外のアプリでも検知できるので、Webブラウザやメーラー、テキストエディタなど使用中のアプリに定型文を入れることができます。
カメラシャッターが押された時の手順 「お世話になっております。秋山です。」を入力する 終わり
4. シャッターを押したら「スクリーンショットを撮る」
先ほど説明したとおり、プロデル以外のアプリを開いていても受け取ることができるので、画面のスクリーンショットを撮ってファイルに保存するといった用途にも使えます。
スクリーンショットは、「スクリーンショット」種類を使うことで、撮ることができます。
ここでは、シャッターを押す度にデスクトップへ新しい画像ファイルとして保存するようにします。保存先のファイルを上書きしないように、存在を確認してすでに存在すればカウントを増やし、存在しないファイル名を決めます。
「基準名」変数では、画像の保存先のフォルダや、ファイル名の先頭、拡張子を指定します。
カメラシャッターが押された時の手順 画面全体をスクリーンショットとして取り込んでキャプチャ画像とする 基準名は、「[デスクトップ]スクリーンショット.png」 カウンタは、1 繰り返す ファイル名は、「[基準名のフォルダだけ][基準名の名前だけ][カウンタ].[基準名の拡張子だけ]」 もしファイル名というファイルが存在しないならば、繰り返しから抜け出す カウンタを増やす 繰り返し終わり キャプチャ画像をファイル名へ保存する 終わり
タスクバーの通知領域に常駐させる
プロデルで常駐タイプのプログラムを作ることもできます。
「通知アイコン」種類を使うことで、タスクバーの通知領域にアイコンを登録できます。
今回は、好きなタイミングでカメラシャッターの機能をオンにしたりオフにしたりできるようにします。
プログラムが長くなってしまいましたが、常駐タイプのプログラムを紹介します。まずはプロデルデザイナに貼り付けて実行してみて、次にお好みの動作を実行するようにプログラムを改造してみると良いかと思います。
タスクトレイ1という通知アイコンを作る // Windowsに用意されたアイコン集からカメラアイコンを選びました 「shell32.dll」の117番目からアイコン画像を抽出したものにそのアイコンを変える // 通知アイコンを右クリックした時のメニューを作ります メニュー1というコンテキストメニューを作る メニュー1に機能状態項目というメニュー項目を追加する その内容を「機能ON」に変える そのクリックされた時の手順は、切り替える メニュー1に区切り線を追加する メニュー1にメニュー項目を追加する その内容を「終了(&X)」に変える そのクリックされた時の手順は、閉じる タスクトレイ1のメニューをメニュー1に変える // ホットキーでカメラシャッターを登録します カメラシャッターというホットキーを作る カメラシャッターのキーは、「VolumeUp」 モードは、× 機能オンに切り替える タスクトレイ1を表示する 待機する カメラシャッターが押された時の手順 // カメラシャッターが押されたときのプログラムをここに書きます 画面全体をスクリーンショットとして取り込んでキャプチャ画像とする 基準名は、「[デスクトップ]スクリーンショット.png」 カウンタは、1 繰り返す ファイル名は、「[基準名のフォルダだけ][基準名の名前だけ][カウンタ].[基準名の拡張子だけ]」 もしファイル名というファイルが存在しないならば、繰り返しから抜け出す カウンタを増やす 繰り返し終わり キャプチャ画像をファイル名へ保存する 終わり 閉じる手順 // 閉じるときには必ず、タスクトレイを隠して、ホットキーを解除してください タスクトレイ1を隠す 機能オフに切り替える 終了する 終わり 切り替える手順 // 「モード」変数に応じて、機能のオンとオフを切り替えます もしモードが×なら 機能オンに切り替える そうでなければ 機能オフに切り替える もし終わり 終わり 機能オンに切り替える手順 もしモードが×なら カメラシャッターを登録する モードは、○ もし終わり 機能状態項目の内容を「機能OFF」に変える 終わり 機能オフに切り替える手順 もしモードが○なら カメラシャッターを解除する モードは、× タスクトレイ1に「シャッター機能をオフにしました。」を情報で通知する もし終わり 機能状態項目の内容を「機能ON」に変える 終わり
PCの起動時にツールを自動起動させるには
作ったツールを「実行可能ファイル」として作成しておけば、PCの起動時に自動起動させておくこともできます。
自動起動するには、ツールをスタートアップに登録しておきます。スタートアップに登録するためのツールをアップロードしましたので、ツールを作るときの参考になれば嬉しいです。
気がついたこと
無事ツールは完成しました。ただ、作ってみると、気がついたことがあります。
ツールの起動中に、PCの音量大キーが使えない
VolumeUpキーの本来の動作を上書きしているため、音量大ボタンで音量を大きくしようとすると、ツールが動いてしまいます。なお、タスクバーの音量設定からマウス操作でボリュームを変えることは可能ですので、音量ボタンを使わなければ何とかなります…
シャッターを複数買ってきても、受け取れるのは1つだけ
どの製品もVolumeUpキーに割り当てられているため、複数のカメラシャッターをペアリングしても、1つの操作しかできません。複数の操作をさせたい場合、例えばシャッターを押した回数で、機能を分けるなどの工夫ができるかと思います。
一方、未検証ですが、例えば、「Bluetooth対応のプレーヤリモコン」で、同じように反応するキーを解析して、ホットキーに登録すれば、ボタンごとにたくさんの機能を割り当てることもできるかもしれません。
Bluetoothカメラシャッターを持って無くても使える方法
実は、カメラシャッターが手元に無い場合でも、キーボードやPCに音量大のキーやボタンがあれば、今回のプログラムを試せます。
ホットキーの機能を利用すれば、普段使用しないキーボードのキーに、好きな機能を当てることができますので、あまり使わないキーをホットキーに登録して、ぜひ試してみてください。
困ったときは
試しているうちに、ホットキーが効かなくなってしまった
ホットキーは、Windowsに登録されるので、使い終わった時に「解除する」手順で登録解除する必要があります。通常はプログラムを終了するとプロデルで自動的に解除してくれますが、希に解除されないこともあります。その時は、プロデルデザイナを再起動してお試しください。
カメラシャッターの接続が切れてしまった
今回使用した製品では、一定時間使用しないと電源が切れてしまうようです。反応しないときは、長押しすると再接続されます。長押ししてもダメな場合は、再度ペアリングすれば利用できるかと思います。
まとめ
今回は、カメラシャッターを本来とは違う方法で遊んでみました。少し不便なところもありますが、工夫次第でいろんな用途に使えると思います。
今回紹介したものと同じ機能を持つフリーソフトは、たくさん公開されていますが、プロデルを使うことの利点は、自分に合ったツールを自分で「作る」ことができることです。
自分の使いやすい物を作れることが、プログラミングのいいところで、楽しいところでもあります。ぜひいろんなツールを作って工夫して活用してください。