blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

スペースキーを連打すればピリオドを挿入し大文字入力に切り替える "iSpace" を、日本語入力時に無効にする

 iSpace - Crazy IncというソフトウェアがiSpace - k本的に無料ソフト・フリーソフトで紹介されている。このソフトウェアを使っているときにスペースキーを二度打鍵すれば、ピリオドが挿入され、続く文字入力が大文字になるようだ。
 気になるのは、紹介文中の「尚、日本語等の全角文字を入力している時は、この機能を無効化しておいた方がよいかもしれません」 という断り書きである。どうやら iSpaceの処理では日本語入力か否かを判定しておらず、ピリオドと次の文字の大文字化を無闇にすすめてしまうらしい。これでは便利そうなこのソフトウェアの使い勝手が著しく低下してしまう恐れがあるだろう。


 ところで製作者のウェブサイトによると製作者はAutoHotkeyに関心を持っているようで*1、iSpaceの実態はAutoHotkeyのスクリプトのようである。実際には iSpace はAutoHotkey 用スクリプトを実行バイナリ化したものだ。
 ここまでの情報より、IMEの有効時に特定の処理を行わないよう、AutoHotkeyのスクリプトを設定すればよいということになる。IMEの有効・無効の判定には eamat @Cabinet - IME制御IME.ahk を使えばよく、設定内容の変更作業はさほど難しいものではない。
 以下で、作業の手順を順に見ていこう。なお作業を終えるまでには、AutoHotkey_L のインストールを完了しておくこと。

  1. iSpace - Crazy Incの Download ボタンを押して iSpace v1.00.0b.zip を入手する
  2. iSpace v1.00.0b.zipを展開する
  3. eamat @Cabinet - IME制御 の "IME20121110.zip (本家,A32/U32/U64 同梱) "をクリックして入手する
  4. IME20121110.zip を展開する
  5. IME20121110\IME\UTF8\IME.ahk を iSpace v1.00.0b\source にコピーする
  6. iSpace v1.00.0b\source\iSpace.ahk を、次の画像で示しているように改変する
    1. main:の次の行に if !(IME_GET()) を挿入
    2. ファイルの末尾に行を改めて #include IME.ahk を追記

f:id:blechmusik2:20130528004218p:plain
f:id:blechmusik2:20130528004232p:plain
 このうえで改変した iSpace.ahk を起動すれば、日本語入力時に不必要なピリオドを自動的に挿入しなくなっているはずだ。
 なお、"if !(IME_GET())"という記述についてここで説明しておく。IME_GET()関数は、IMEが有効であれば1(True)を返し、無効であれば0(False)を返す。これを"!()"で括ることによって、IMEが有効であればFalseを、無効であればTrueを返すことになる。よって、if !(IME_GET())は、IMEが無効のときに限って後続の処理を行え、というものなのである。