2007/03/16(金)スキャナビボタンに任意のアプリケーションを割り付ける→失敗
2007/03/16 23:51
このスキャナはスキャナビボタンという物が4つついている。スキャナ側からの操作で任意のアプリケーションを起動し、ボタンごとに設定を変えておいたり、勝手に取り込んだりできたら便利なのではないかと考えた。
結論から言うと失敗したので誰の役に立つという情報でもないのだが、一応作業メモを残しておく。
さてスキャナビボタンで起動できるのはStillImage対応として登録されたソフトに限られるようだ(ドライバの制約)。レジストリは以下の場所にある。
HKEY_LOCAL_MACHINE\SYSTEM\使っているコントロールセット\Control\StillImage\Events\STIProxyEvent登録したいアプリにGUIDがあれば、それを使いキーを作成。なければ、VisualStudioなり、Rubyのuuidtoolsなりで適当にGUIDをでっちあげればいい。
キーの中身は以下のようになる。
[HKEY_LOCAL_MACHINE\SYSTEM\使っているコントロールセット\Control\StillImage\Events\STIProxyEvent\{アプリのGUID}]"CmdLine"="アプリケーションのパス" /StiDevice:%1 /StiEvent:%2"
"Name"="名前"
"Desc"="名前でいいと思う"
"Icon"="sti.dll,0"
場合によっては反映に再起動の必要があるかも。
この方法でBTScanを登録してみた。すると確かにスキャナビボタンの起動アプリとしてBTScanが表示された。やったと思ったのだが、/StiDeviceって何? と、BTScanから怒られる。
得心。
/StiDeviceとか/StiEventってのはまさしくコマンドラインのオプション指定に過ぎない。要するにstillimageってのはMSがインターフェースだけ決めて、実装するかどうかはアプリ任せっていうことだ。
オブジェクトや、テンポラリファイルがわたせるのではないかというイメージがあったため、思わず突っ走ってしまったがまるで無駄だった。結局アプリ側でTWAINを立ち上げるとかいうことなんだなあ。
ただこの方法で特定のスキャナビボタンに任意のコマンドを割り付けることは出来そうだ。たとえばuwscのスクリプトや、特定のショートカットボタンを各スキャナビボタンに割り当てるということは出来るだろう(もちろんその場合は/Sti****は不要)。
でも結局TWAIN経由になるなら、スキャナビボタンにショートカットを割り当てたところで手順の簡略化にはつながらない気もする。キーボードをスキャナの所まで引っ張ってくるのがめんどくさいということであれば、ジョイパッド+JoyToKeyをつかうとか、マウスにショートカット割り当てるとかその程度でいいかな。