JavaScriptでWindowsを拡張するNILScriptを使ってショートカットキーを登録してみた

目標

Ctrl+Dで今日の日付を入力させたい。フォルダ作成やファイルを保存する際に使う。
Google日本語入力などのIMEで「きょう」で変換すれば、「2010/11/24」「2010-11-24」「2010年11月24日」などのフォーマットで変換されるが求めているのは20101124の形である。地域と言語のオプションでフォーマットを変えられるけど他のアプリに支障が出る。

作り方

  1. NILScript ここからダウンロード。
  2. ドキュメントとサンプルを読む。今回はHotstrokesを使えばよさそう。
  3. サンプルを書き換えて、todaystamp.ng完成。

使い方

コンピュータ起動時に実行してほしいのでスタートアップフォルダにngw.exeのショートカットを作ってコマンドラインオプションを付ける。
"J:\Program Files\nil\ngw.exe" "J:\Program Files\nil\users\cherenkov\todaystamp.ng"
こんな感じ。

メモ

  • install.batを再び実行すればアンインストール出来て関連付けを外せる。(アンインストールしてもファイルは消えない)
  • IMETurnOff()で半角モードになる。
  • サンプルに書いてあったけどIMETurnOffなどのIMEのメソッドやプロパティを触る場合は.use('IME')必須。
  • サンプルのkeyboard_hook.ngでキーを押して名前など確認できる。
  • 半角/全角キーのエイリアスはhanzen。
  • .send("hoge")は不可。.send("[h][o][g][e]")とするか.send(["hoge"])

気になる

  • 二重起動防止したい。
  • スタートアップ登録を自動でやる機構はある?
  • nil\users\以下にできるユーザ名のフォルダは自作のスクリプトを入れる用?
  • IMEの状態を取得する方法は?