HOME     メール  

Links:

最近の投稿

カテゴリー

広告

サイト内検索

外部リンク

アーカイブ

広告

お知らせ

X Button Maker Ver3.01 リリース

1.キーフック解除が別スレッドにしたため特定アプリケーションのキー定義が不安定だった問題を修正。
2.IMEがONのときの出力文字列の振る舞いを大幅刷新

ダウンロードファイル名:XBM301setup.ZIP
サイズ:1,141,512 バイト (設定ダイアログで使っているMFCのランタイムをスタティックリンクしているためサイズが大きくなっています)
日付:‎2015‎年‎1‎月‎11‎日、‏‎10:24:11

1はIEで明らかにおかしいというのが分かってすぐに修正しました。ver3.00の時点でキーフックに伴う負荷を出来るだけ軽減するためにコードを変更したのですが、それがバグを呼んでしまいました。Windowsは低レベルキーフックを32/64bit両バージョンに送ってしまうので、どちらかを無効にする必要があるのですが、今回不必要なキーフックのアンインストールを、アクティブウィンドウにフォーカスが移った時に動的に行って、システムの負荷を下げた(はず)ですが、キー入力時は明らかに負荷は下がっているとは思いますが、ウィンドウ切り替え時は負荷は若干増大しているはずです。まあ、大した違いはないでしょう。
 以上のことは64bit Windows上での話です。32bit版Windowsではこの問題は存在しません。

2は実は1より遥かに時間がかかってしまいました。具体的な機能は以下のアニメーションGIFをクリックしてみてください

IMEON animation

この機能は、ずっと前から気に入らなかった機能のため、今回本腰を入れてやりました。昔のWindowsなら単純にタイトルバーにテキストを入れればそれでよかったのですが、最近のWindowsは例えばIEやエクスプローラのタイトルバーは見た目では存在しますが、内部では標準的なものではく、タイトルバーの様に「見せかけている」ので単純にタイトルバーのテキストを変えるだけではIMEが表示されている事を示す、表示・非表示をコントロールする事が出来ません。

そこで、BattenXの以前のバージョンでは、テキストではなくグラフィックとしてテキストを表示していたのですが、非表示がうまくいかないウィンドウが多くて、実質使い物になりませんでした。非表示もこちらで制御しようとかなり試行錯誤しましたが、うまくいきませんでした。仮にうまくいったとしてもWindows7のような裏側が透けて見えるタイトルルバーや、ウィンドウを移動させた場合は根本的に対応できません。

それで今回から完全な1つの独立したウィンドウにしてしまいました。これなら描画に関する処理は標準的なWindowsプログラムで済み、描き直しはWindowsにお任せできます。加えて独立したウィンドウにしたことにより、配置を自由に行える事が出来るようになり、タイトルバー以外の位置に表示することも可能です。
このウィンドウ自体の作成は比較的作るのが楽だったのですが、外部から制御するとき思ったとおりに表示してくれないのがかなり苦労しました。表示が安定せず、IMEがOnになったときに表示してくれないときが多かったのです。フック関数やWindowsの内部メッセージ処理の根幹に関わる部分が原因していると思うのですが、何度も試行錯誤して100%完璧とは言えないまでも、容認できるレベルまでにはしました。 
ただしIEなどブラウザ内のエディットコントロールの場合、表示位置が連動して動いてくれません。