半角英数モードの時だけATOKオフで直接入力 AtokChanger ver1.04

先日、こちらのコメントで、えーさんからご報告頂いた不具合を修正しました。
具体的には、KOTETUさんの現在起動中のタスクを終了させるアプリである”AppClose”で-Aや-Cオプションを付けて利用した場合に、一緒にAtokChangerも終了してしまうという不具合です。


アプリやソースのダウンロード、解説ページは、こちらです。


以下、技術的解説など。。


原因は”常駐アプリをウィンドウとして生成していたから”でした。
検証してみるとAppClose等のタスクを終了させるアプリは、ウィンドウの存在するアプリを全て終了させているような感じでしたので、拙作の常駐アプリも全て一緒に終了してしまっていたようです。


この不具合については一年位前に検証した時になんとなくそういう理由かなとは思っていたのですが、解決策が見つからず放置してました(苦笑
で、今回のご報告をきっかけに再度気合いを入れて調べてみることに。
そこで思い出したのが、以前公開されたホーミンさんの、PowerstatusMini
ありがたいことに、アプリと一緒にソースファイルも同梱されているんです。
私が知ってる限りで常駐アプリでソースが公開されているのはこれ以外に知らなかったので、不具合報告をいただいた当時もこのソースを眺めてはみたのですが、その頃の知識では理解出来ずに断念orz


そのソースを先日再度眺めてみたところ、アプリ開発経験を積んできたおかげで、だいぶ理解出来るようなっていたので(嬉)、さっそくそのソースを参考にAtokChangerを改良してみたところ、上手く不具合を解消することが出来ました。
後で気付いたのですが、”PowerstatusMini - W-ZERO3 ツールMEMO”でsoliptさんが同不具合にして書かれていた点に気付かれたホーミンさんは即修正なさっています。
さすがです。。。


私の常駐アプリとホーミンさんのPowerstatusMiniのソースを見比べてみたところ、

  • 私 → CreateWindowExで”ウィンドウ”を生成
  • ホーミンさん → CreateDialogIndirectParamで”ダイアログ”を生成


つまり、同じようにダイアログとして生成すれば、タスク終了アプリ等を利用した時も終了されてしまうことがなくなるのでは?と思い、試してみたところ、ビンゴでした♪
ホーミンさんがPowerstausMiniのソースを公開してくださっていなければ、もしかしたら一生悩み続けていたかもしれませんので(汗><、ホーミンさんには心から感謝してます(礼


他にも同不具合を持つ常駐アプリ(PowerstatusPlusChgSuisokuCloseChaseNoConfimDial)がありますので、修正後にアップしていきたいと思っていますm(__)m