Home > Latest topics

Latest topics > Windowsの言語バーをIMEがONの時にのみ表示する

宣伝1。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

宣伝2。Firefox Hacks Rebooted発売中。本書の1/3を使って、再起動不要なアドオンの作り方のテクニックや非同期処理の効率のいい書き方などを解説しています。既刊のFirefox 3 Hacks拡張機能開発チュートリアルと併せてどうぞ。

Firefox Hacks Rebooted ―Mozillaテクノロジ徹底活用テクニック
浅井 智也 池田 譲治 小山田 昌史 五味渕 大賀 下田 洋志 寺田 真 松澤 太郎
オライリージャパン

Windowsの言語バーをIMEがONの時にのみ表示する - Feb 26, 2011

ATOKはATOK2011からWindows XP以降の多言語入力のフレームワークにきちんと則った設計になったとか何とかで、独自のフローティングウィンドウ(ATOKパレット)の代わりに、Windows標準の「言語バー」で全ての操作を行えるようになった。それはいいんだけど、使い勝手がちょっと今までのATOKパレットと違って違和感がある。目下のところ困ってたのは、IMEがOFFの時に言語バーが消えないという事。

というのも、ATOKパレットでは「IMEがONになってる時だけ表示して、IMEを介さない直接入力になってる時は非表示にする」という設定ができたんだけど、フローティング表示にしたWindowsの言語バーにはそういう機能が無いようで、直接入力の時でも常に言語バーが出っぱなしになってしまうのです。

普段の利用とか開発の時とかはそれでも別にいいんだけど、全画面表示でDVDとかBDとかを鑑賞したり、Adobe IllustratorやSAIとかの画面をなるべく広く使いたいアプリケーションを使う時なんかには、これが邪魔になる。

じゃあタスクバーに入れとけばいいじゃんって話なんだけど、タスクバーを縦置きして且つ自動で隠すようにしてる僕の環境では、ぱっとデスクトップの右下に目をやった時にIMEがONなのかそうでないのか(何も出てなければIMEがOFFになってて、ATOKパレットがあればIMEがONになってるってことですね)を判別できないので、そっちの方が不便が大きい。

JustSystem的にはこういう場合は言語バーを非表示にするかタスクバーにドッキングさせた上で従来通りのATOKパレットを使うようにしてくれって事らしい。でもそれも何だか芸がないですよね。できれば新しい物を使いたいし、古いオプションがいつまで残るかなんてわかんないし。乗り換えられるようになったらさっさと乗り換えておいた方がいいという事は、自作アドオンのせいでFirefox 1.5にロックインされてFirefox 2にいつまでも移行できなかった時にも痛感したし。だいたい、従来のATOKパレットではアプリケーションを切り替えたタイミングとかで、切り替え後のウィンドウの方でIMEが無効になってる時でもたまにATOKパレットが出っぱなしになることがあったから、以前のやり方に戻しても万全じゃないのです。

それでもうちょっと検索してみたら、そういう事をはてなで訊いてる人がいて、その回答の中でXLangBarというユーティリティが紹介されてた。昔なつかしVzエディタの作者の方の手による物だそうだ。最終リリースが2006年だったりWindows XP+MS-IME2002専用と書いてあったりで、Windows Vista+ATOK2011な僕の環境では動かないんじゃなかろうかとも思ったんだけど、試してみたらばっちり動いた。多分、Windows標準の言語バーを使ってる物だったら何でも使えるんだと思う。Windowsの多言語入力の仕組みが変わらない限りはしばらくは安心して使い続けられる……かな……?

追記。64bit版のWindows 7で試してみたら、XLangBarは起動するものの、機能しないという結果だった。Windows 7だからアウトなのか64bitだからアウトなのかは不明です。

以下どうでもいい余談。

上述の「Windows XP以降の多言語入力のフレームワーク」はTSF(Text Service Framework)といって、Windows XPじゃなくてWindows 2000の頃から導入されてたとのこと。TSF以前の仕組みはIMM32といい、ATOK2010まではIMM32だけを使っていたそうだ。

Windows XPにおけるTSF 1.0は機能的な制約が大きく、IMM32を完全に置き換えるには至っていなかったそうだ。そのため、MS-IMEGoogle日本語入力もIMM32を使っているのだという。

で、この貧弱だったTSFがWindows Vista以降でパワーアップしてIMM32を置き換えるのに十分なだけの機能を備えるようになったのだそうだ。というか、Windows VistaではネイティブなIMM32の実装がなくなって、IMM32を使うアプリケーションに対しては単にIMM32のAPIをエミュレートして実際には裏でTSFを使うようになってたんだと。だから今でもIMM32ベースでアプリケーションを開発しておく限りにはWindows XP以前でもWindows 7でもちゃんと動くんだと。こういう所に、可能な限り互換性を重視するというマイクロソフトの姿勢が現れてて面白いなあと思う。

とはいえ、Windows XPもIMM32もいずれは消えゆく技術なのだし、無駄にエミュレーション層を通すよりは直接TSFを呼べるならそうした方がいいのは当たり前なので、ATOKは一般ユーザ向けの人柱版まで用意してTSFネイティブ対応を進めて、ATOK2011でやっと正式対応になったということのようだ。

TSFとIMM32についての詳しい話はImpress Watchの記事にも登場されているNyaRuRu氏のブログのエントリにもある。APIの変更だの互換性の問題だのでFirefoxのバージョンアップの度に悩まされてきた身としては、どこのレイヤでも同じような話があるものなんだなあと、感慨深い思いをしております。

分類:システム再構築, , , , , , , 時刻:05:44 | Comments/Trackbacks (1) | Edit

Comments/Trackbacks

Windows 2000のTSF

> Windows XPじゃなくてWindows 2000の頃から導入されてたとのこと。
どこで聞いたのか知りませんが、Windows 2000にデフォルトでTSFは含まれていません。Office XPなどをインストールするとTSFが一緒に導入されます。
http://d.hatena.ne.jp/NyaRuRu/20040525/p1

Commented by えむけい at 2011/02/26 (Sat) 20:29:24

TrackBack ping me at


の末尾に2014年1月19日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。例えば「noda」なら、「2011-02-26_atok-language-bar.trackbacknoda」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

writeback message: Ready to post a comment.

2014年1月19日時点の日本の首相のファミリーネーム(ひらがなで回答)

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のつぶやき

オススメ

Mozilla Firefox ブラウザ無料ダウンロード