2018年02月19日

AutoHotKeyでIME制御1:IMEの状態をわかりやすくする方法


IMEの状態がローマ字入力モードだと思って打ち込み始めたら、半角英数モードで、もう一度入力し直しをするような場面がちょくちょくありました。

まあ、1〜2文字で気がつけばいいのですが、勢いで入力してしまうと5〜6文字くらい行っちゃうときもあって、結構イライラします。

なんとかならないものか…?

と調べていたら、ImeTray64 っていうソフトがありました。


 ImeTray64

ただ、メモリ貧乏な私としてはあまり常駐ソフトを増やしたくない…

■AutoHotKey でIMEの状態表示をする


ということで、過去にも何度かご紹介している AutoHotKey で、ウインドウを切り替えたときに今のIMEの状態を表示できるようにしてみました。

早速ですが、今回作った AutoHotKey のスクリプトは以下です。

◇――――――――――――――――――――――――――
#Include   IME.ahk      ; IME 制御のためのライブラリ
#Persistent
myFunc := RegisterCallback("WinActivateHandler")

myHook := DllCall("SetWinEventHook"
, "UInt", 0x00000003 ; eventMin : EVENT_SYSTEM_FOREGROUND
, "UInt", 0x00000003 ; eventMax : EVENT_SYSTEM_FOREGROUND
, "UInt", 0 ; hModule : self
, "UInt", myFunc ; hWinEventProc :
, "UInt", 0 ; idProcess : All process
, "UInt", 0 ; idThread : All threads
, "UInt", 0x0003 ; dwFlags : WINEVENT_SKIPOWNTHREAD | WINEVENT_SKIPOWNPROCESS
, "UInt")

; アプリが切り替わったときに呼び出される関数
WinActivateHandler(hWinEventHook, event, hwnd, idObject, idChild, thread, time) {
    if IME_GET() == 1 {
    Tooltip, あいう        ; マウスカーソル位置
        IME_SET(0)          ; IME を一瞬反転させる
        IME_SET(1)
    } else {
        Tooltip, ABC                ; マウスカーソル位置
        IME_SET(1)          ; IME を一瞬反転させる
        IME_SET(0)
   }
   SetTimer, ClearTooltip, -1000
}

; 一定時間後に Tooltip を消去する処理
ClearTooltip:
    Tooltip,
return
}
――――――――――――――――――――――――――◇

※2018/02/24 不具合改定

●セットアップ方法
このスクリプトを動作させるには、ime.ahk というスクリプトが必要です。

 AutoHotKeyを流行らせるアップローダ跡地

で、089.zip というファイルをダウンロードしてきてください。
※有用なツールを公開いただいてありがとうございます。

089.zip の中から、ime.ahk というスクリプトを適当なフォルダに展開し、

ご自分の ahk スクリプトに

 #include (展開したパス)ime.ahk

を追加してください。

次に、読み込むスクリプトの先頭にこのコード部分をコピペしてください。

これで、動くようになるはず。



■機能の説明


このスクリプトは、ウインドウの切り替えが発生するたびに、RegisterCallback という関数が呼ばれるようになります。

その中で、現在の IME の状態を調べて、マウスカーソル位置に

 IME が ON なら "あいう"
 IME が OFF なら "ABC"

と 0.5 秒間表示します。

ただ、これだとマウスカーソルが目立たない位置にあったり、マウス以外で切り替えたときには目立ちませんので、IME を ON/OFF します。

GoogleIME ではこれでキャレット位置に現在の変換モードを表示します。
他の IME は確認してないのでわかりませんが、何らかの表示があるんじゃないかと……(いい加減ですみません)。

これで、ウインドウを切り替えるたびに、現在の IME の状態が着目している位置(マウスカーソル位置かキャレット位置)に表示され、見落とす確率がちょっと下がりました。

絶対確実な方法ではありませんが、多少でも改善すれば精神衛生にはちょっといいかも。


◆このテーマのおすすめ図書


カナヘイの小動物ゆるっとエクセル

自分の仕事をつくる

「テープ&音声起こし」即戦力ドリル

できるビジネスパーソンのためのExcelデータ分析の仕事術

独学レッスン式テキストパソコン在宅ワーカー養成テキストデータ入力編

できるビジネスパーソンのためのExcelVBAの仕事術

■同じテーマの記事

ロバート・フェルドマンのビジネスマンに読んでほしい本2

著名エコノミストのロバート・フェルドマン氏が薦める本のご紹介。簡単にフェルドマン氏について。アメリカ合衆国テネシー州オーク・リッジ出身。東欧ユダヤ系。1970年にAFSの交換留学生として初来日。愛知県名古屋市の南山高等学校にて学ぶ。イェール大学(経済学・日本研究学士)を経て、マサチューセッツ工科大学において経済学博士を取得。野村総合研究所、日本銀行で研究業務、その後国際通貨基..

ロバート・フェルドマンのビジネスマンに読んでほしい本1

著名エコノミストのロバート・フェルドマン氏が薦める本のご紹介。簡単にフェルドマン氏について。アメリカ合衆国テネシー州オーク・リッジ出身。東欧ユダヤ系。1970年にAFSの交換留学生として初来日。愛知県名古屋市の南山高等学校にて学ぶ。イェール大学(経済学・日本研究学士)を経て、マサチューセッツ工科大学において経済学博士を取得。野村総合研究所、日本銀行で研究業務、その後国際通貨基..

3分の1マージン

ハードディスクの余裕以前、中国のネットワークサーバの管理をしていた頃に、ルールとして決めたものがあります。3分の1マージンというのがそれ。今も確認すると、それが色々なところに拡大されて、自分が担当してなくてもそれが部門のルールとして残っているようです。何かというと、・ハードディスクの空き容量が3分の1を切ったらファイルの整理をする・メモリの余裕が3分の1未満になったら、不要なアプリを探して停止させるかメモリの増設をする・SQLサーバのフリーエリアが3分の1..

セルフイメージを高める本当の方法

私も含め、どうもストイックな人が多いような気がします。これじゃあダメだもっと頑張らないともちろん、自分の課題を発見し解決していくことは良いことだと思います。ただ、それはマイナスをゼロにする方法でしかありません。ダメなところを改善してもプラスにはならないんです。一方で、良いところをより活用しようとしたり、より伸ばそうとするとプラスがさらに大きなプラスになります。アファメーション「アファメーション」という言葉の発祥..

新規テキストファイルをバッチで作成する

Windows で新しいファイルを作成する方法って、マウスでエクスプローラのなにもないところを右クリックして新規作成を選んでファイルのタイプを選択する以外に方法がないみたいです。おそらく Word / Excel なんかのアプリに新規作成を実行させるためにそうなっているんでしょうけど、ちょっとしたメモを作りたいだけのような場合には結構不便です。たとえば、多くのファイルがあるようなフォルダだと、まず何もないところの面積が少ない。そのために、表示を広げた..

書類・資料は最後のページから読む

最近は紙書類をもらうことは少なくなりましたが、多いのが PowerPoint 資料。数ページの資料から百ページを超える大作まで、いろいろなのですが、この資料を確認しないといけないときに、私が最初にやるのは、「スライド一覧表示」。まず PowerPoint を開いたら、ALT, W, I と押すとこの表示になります。スライド一覧で全体の流れとポイントになるスライドを探す効率が悪い方法というのが、いきなり、プレゼンテー..

posted by 管理人 at 04:58| Comment(0) | PCアプリ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

人気ブログランキングへ 上司の指示に従うだけの毎日から抜け出したいなら、 「7つの習慣」で学ぶ事をオススメします。 コヴィー博士追悼企画として今なら、初回DVD50%オフ+コヴィー博士最後の著書プレゼント付き! http://123direct.info/tracking/af/620699/Fg9QE9Jf/ 現代ビジネス界の金字塔、7つの習慣DVD講座