====================================================================== 【ソフト名】 VJE-Delta4.0 カナ制御サポーター DeltaEnd Ver.0.20 【登 録 名】 deltaend0.20.lzh 【著作権者】 毎黒仮節渡万 【動作環境】 VJE-Delta4.0が動作する環境 【動作確認】 自作機 + Windows XP SP3 ====================================================================== ・カナ入力派に捧ぐ  VJE-Delta4.0はカナキーの自動制御を切ることができません。  それを何とかしてみました。 ・deltaend0.20.lzhに含まれるファイル DeltaEnd.txt このドキュメント DeltaEnd.ini サンプル設定ファイル 2005\DeltaEnd.exe 2005版実行ファイル 2005\DeltaEnd.dll 2005版DLLファイル 2003\DeltaEnd.exe 2003版実行ファイル 2003\DeltaEnd.dll 2003版DLLファイル vjeime.exe IMEパッチ用ファイル vjed32.dll USER32.DLLラッパー DeltaEndSrc.lzh ソース一式 ・インストール方法  まず、IMEのデフォルトをVJE-Delta4.0から変更して再起動します。  次に、vjeime.exeとvjed32.dllをvjeime.imeのあるディレクトリ(Windowsの システムディレクトリ)にコピーし、vjeime.exeを実行。  IMEをVJE-Delta4.0に戻して再起動。  最後に、適当なディレクトリにDeltaEnd.exe/DeltaEnd.dllを置いて DeltaEnd.exeを実行。スタートアップに登録するとよいでしょう。  2005サブディレクトリ以下にはVisualStudio 2005で作成したバイナリが 入っています。埋め込みmanifestが入れてあるのでVistaに対応できます。 VisualC++ 2005 SP1の再配布パッケージが必要です。  2003サブディレクトリ以下にはVisualStudio.NET 2003で作成した バイナリが入っています。原則NT4用ですが、もちろん他のOSでも動きます。 こちらもVisual C++ .NET 2003のDLLが必要です(別途配布)。  Vistaは2005版、NT4は2003版、Win9x/2000/XPはお好きな方を。  以上です。 ・設定  タスクトレイのアイコンを右クリックするとメニューが現われます。  「VJE-Delta4.0」   VJE-Delta4.0に現在のカナロック状態を反映させます。   (デフォルトでON)  「ひらがなカナロック」   「ひらがな」キーをカナロックにしている場合に、キー押上まで   ロック状態が変化しませんが、これをチェックするとキー押下で   変化するようにしてくれます。   (デフォルトでOFF)  「SendMessage」   DLLから直接フォアグラウンドウィンドウにSendMessageを飛ばします。   処理が重い時にも反映までのタイムラグが出にくくなります。   フォアグラウンドが死んでいるとDLLも死にますが、たぶん   当該プロセスののみで済むはず(Ver.0.11までの動作に相当)。  「バージョン情報」   バージョンに関するダイアログを表示します。  「終了」   終了させます。  設定はDeltaEnd.exeと同じディレクトリにDeltaEnd.iniに保存されますが、 追加設定があります。  「ひらがなカナロック」を動作させないアプリケーションをクラス名で 指定できます。ネットゲームを指定することになるでしょう。 [IgnoreClass] Ragnarok Lineage ・アンインストール  まず、スタートアップからDeltaEndを外し、IMEのデフォルトをVJE-Delta4.0 以外にして再起動。  インストールした場所にあるDeltaEnd.exe/DeltaEnd.dllを削除  Windowsのシステムディレクトリでvjeime.imeを削除  同じく、vjeime.oldをvjeime.imeにリネーム  同じく、vjed32.dllを削除  IMEのデフォルトをVJE-Delta4.0に戻して再起動。  以上です。レジストリは使用していません。 ・プログラム  パッチとvjed32.dllによってvjeime.imeが勝手なキー操作をしないように しています。具体的には、パッチでuser32.dllでなくvjed32.dllを呼ぶように して、keybd_eventとSetKeyboardStateの二つのAPIをダミーで潰しています。 このラッパーDLLを作るのに、ちよクロ氏のlistexpを使わせていただきました。  これだけではIMEをONにする前にカナロックが変化した場合、IMEのモードと 一致しなくなるので、DeltaEnd.exe/DeltaEnd.dllで反映させています。 キーボード低レベルとウィンドウプロシージャの戻りでグローバルのフックを 仕掛けています。 1)IME ONで変換モード変更を検出したら、全角がひら/カタどちらかを 保存(デフォルトは全角ひらがな)。 2)カナキーが押される度、IME OFFならカナON/OFFを変換モードに反映。 3)IME ONを検出したとき、カナのON/OFFと変換モードが矛盾していたら修正。 というような処理内容です。  ウィンドウプロシージャフックではキー入力を検出できないので、 キーボード低レベルフックからフォアグラウンドウィンドウにダミー メッセージを投げています。厳密には、フックをデッドロックさせないため、 タスクトレイのexe側にPostMessageして、そこからSendMessageという形です。 ・謝辞  フックもDLLもタスクトレイもIME制御も全て初めてのことだったので、 株式会社ゼロ様のExternal IME Controlerをベースにしました。 ラッパーDLLを作ったあたりからソースを書き直しましたが、試作段階では 完全にExternal IME Controlerの改造でテストを進めました。  また、ラッパーDLLを作るにあたり、ちよクロシステム様のlistexp2を 使わせていただきました。  どうもありがとうございました。 ・開発環境 Windows XP ServicePack 2 VisualStudio 2005 ServicePack 1 ・著作権  本プログラムの著作権を明記しておきます。次のとおりです。 DeltaEnd Copyright (c) 2005-2008 by 毎黒仮節渡万(MicroCassetteMan)  このプログラムはフリーソフトウェアですので、著作権は上記のとおり保持 されます。転載、再配布は、書庫ファイルの中身が変更されない限り自由です。 アーカイバの変更も認めます。個人の範囲内では改造も自由ですが、改造版の 再配布は差分に限られます。また、その際もオリジナルの著作権表示の変更は 禁じられます。  ソースの一部または全部を転用する場合、参考にした旨を明記してください。  このプログラムを使用したことによって被ったいかなる被害も、作者が保証 するものではありません。また、不具合の報告は歓迎しますし、できるだけ 修正するよう努めますが、その義務までは負いません。 ---------------------------------------------------------------------- 小松 英之 毎黒仮節渡万 mychro@kw.netlaputa.ne.jp MicroCassetteMan http://www.netlaputa.ne.jp/~mychro/