AutoHotKey入れた

本日の成果:AutoHotKey入れた

  ファンクションキーは必要な私ですが、[F1]キーだけはむしろ邪魔。むしろ普段はどこかにしまっておいて、使いたいときだけ引っ張り出してくるようにしたいくらい。例えばファイル名を変更しようとして[F2]を押そうとした指がすべって間違って[F1]を押してしまったその瞬間。PCったら大喜びでディスクをアクセスし始めて、しばしの間ののち「はいヘルプ! いわれた通りにしたよ! えっへんボク偉いでしょ!」とばかりに現れるヘルプ画面の憎たらしいこと。うるさいさっさと消えろ! 元のウィンドウにフォーカスを返せ! 大体Windowsのヘルプなんて、役に立ったためしがないくせに!

  ・・・と考える人が既にいたらしく、特定のキー(主に[F1])を無効化するフリーソフトなども既にあるのですが、できれば単に無効化するだけではなくて、たまにホントに押したいときは押すこともできるような、そう例えばそういうときは1秒長押しすればいいような、そんなツールはないかと探してて見つけたのがAutoHotKeyというユーティリティです。これは今述べた要求事項を直ちに満たすツールではないのですが、汎用のキーマクロといいますか、特定のキーストロークを別のキーストロークにすり替えてくれるツールだったものと思われます。・・・おそらく当初は。
  そしてその後機能拡張を重ね、キー入力だけでなくマウスや各種イベントにも対応し、ファイル操作やウィンドウ操作やDLL呼び出しまで可能になり、しまいにはユーザ定義のGUIウィンドウを表示してユーザとの直接対話までできるようになった挙句、それをコンパイルして単独の実行ファイルを作るなどというもはや開発環境と言えるようなこともできるようになってしまったという、スイスアーミーナイフなツールです。正直自重しろと思います(笑)。でも便利なので使います。
  定義スクリプトを書いて動作を指示するのですが、これまた機能拡張の過程が目に見えるようなものすごい文法になってます。おそらく最初はホットキーとそれに対する置換内容を1対1で記述するだけだったものと思われますが、きっとだんだんいろいろやりたくなってきて、条件分岐を入れて、変数の概念を入れて、ラベルとジャンプを入れて、式の概念を入れて、ユーザ定義関数とローカル変数とstatic変数を入れて、・・・だいたいそんな順序で拡張されていったものと思われます。
  そのような美しさのかけらもない文法ではありますが、理解しづらくはなくむしろ強力です。では私の要求を満たすようスクリプトを作りましょう。
  まずは[F1]について、実際に押されたあと、そのまま話さずに1秒経過したら、押されたことにするようにしました。とりあえずの目標はこれで達成しました。マクロの組み方によっては、2回続けて押すと反応するようにしたりとか、いろいろできるみたい。
  あと、勢いでIMEの状態表示したりホットキーでボリューム制御したり、こまごまとしたことをやるようにしてみました。ただ、いろいろ努力してみたものの、このツールで[CAPS]を[CTRL]に置き換えることだけはできなかったのです・・・。ここだけはドライバレベルでハンドリングしてるらしく、しょうがないのでここはレジストリを弄っています。


投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です