2021年07月12日

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


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

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

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

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


 ImeTray64

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

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


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

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

◇――――――――――――――――――――――――――
#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)
   }
   sleep, 500
    Tooltip,
}
――――――――――――――――――――――――――◇


●セットアップ方法
このスクリプトを動作させるには、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 の状態が着目している位置(マウスカーソル位置かキャレット位置)に表示され、見落とす確率がちょっと下がりました。

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

■関連する記事

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

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

かな漢字変換のモードを間違えなくする方法

私のキー入力速度はだいたい1秒あたり4〜5キー。ちょっと考えながらだと秒間 3キーくらいに落ちますが。で、よく失敗するのが日本語入力の入力モードを勘違いしてキー入力を始てしまうことです。たとえば、英語のメールを書くときに、メールの編集画面を開いてHello! ***って打つと、なんと日本語入力モード(ローマ字)になっていてへっぉ!って表示されちゃいます。まあ、焦らずに CTRL+O って押せばいいだけのことなのですが、間にリターンキーを押しちゃったり..

ステルスバッチファイル―作業を邪魔しないようなバッチファイルを作る方法

作業を簡単に、すばやくやるようにするには、今どきの言葉なら RPA。以前は普通に Windows オートパイロットとかバッチ処理とか読んでましたが。コンサルタントさん、いろいろ儲けの手口を考えますね。まあ、PC なんてもともと、自動化というかプログラムのカタマリなので、いまさらそれを、自動化とかロボットとか言われても、ソフト屋には、「何をいまさら…」みたいなところはありますが。自動処理プログラムが鬱陶しい過去記事でもいろいろ触れてますが、自動的になにかの..

同じアプリのウインドウを巡回するショートカットキー

同じアプリで複数のウインドウを開いていて、そのウインドウを相互に行き来したいときに、ALT+TAB で切り替えます。ところが、よく失敗するんですよ。たとえば、1.EXCEL ファイル A2.EXCEL ファイル B3.Outlookみたいな状態で、ファイルの A と B を交互に切り替えながら作業していると、ふとした拍子に ALT+TAB を押しすぎて、Outlook が表示されちゃうことがあります。で、「しまった〜」って再び A に戻ると、次に A..

エクスプローラの上のフォルダ・前のフォルダに移動するコツ

過去記事でも何度か書いてますが、PC はキーボードで操作したほうが素早く操作ができます。なにしろ、マウスみたいにたった2つしかボタンがないものと比べれば、100個もボタンがあるので、いろいろな機能をいきなり指定できます。もちろん、ちゃんと整備してないと使えないですし、習熟も必要なので、最初はマウスのようにグラフィカルにやり取りする方法のほうが効率がいいかもしれませんが、慣れてしまえばこっちのほうが圧倒的に早くなります。エクスプローラでフォルダを移動するコ..

Google日本語入力のツールを呼び出すコマンド

フリーで高機能な IME である Google 日本語入力の各種ツールを呼び出すのは、言語バーのツールアイコンをクリックしてメニューを選択するのが一般的ですが、「GoogleIMEJaTool.exe」にコマンドラインオプションを渡してやっても、同様の処理が出来ます。私はちょっとした文章を書いて、「これ、また使うよな…」と思ったものは、最初の数文字だけで変換候補として上がるように、すぐに辞書登録をしちゃいます。その作業自体も効率的にやるためには、思った瞬間に辞書ツール..

■同じテーマの記事

かっこいいグラフを作れるテンプレートChartChooser

コンサルタントが作る資料って、かっこいいですよね。もちろん、それで生計を立てているプロなんだから、シロートと比べられたら、コンサルタントは怒るでしょうけど。グラフの種類は多くないでも、結構多くのコンサルタントの方とお付き合いした経験からして、実際に使っているチャートはそれほど多くはないようです。つまり、あるテンプレートがあって、それにデータを食べさせればいいように作ってあるみたいです。まあ、そのくらいでないと効率的..

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

メールアドレス:

ホームページアドレス:

コメント: