====================================================================== 【ソフト名】 キーボードサポーター DeltaEnd Ver.0.62 【登 録 名】 deltaend0.62.zip 【著作権者】 毎黒仮節渡万 【動作環境】 Windows NT 4.0以降 【動作確認】 MacBook Pro MC721J/A + 7 x64 + Boot Camp 4.0 DELL Dimension 9200C + Windows 8.1 VMWare Player 4.0.4 + NT4.0/2000/XP ====================================================================== 元々極めてニッチなユーティリティでしたが、ATOK向けとBoot Camp向けの 機能を盛り込み、少し一般的なものになりました。 さらにPowerPointを標的に、アプリケーション起動時に強制的にIMEをONに する挙動を打ち消す機能を付けてみました。 ・概要 本ソフトの機能は、 ・カナロックにした無変換キーのリピート抑制 ・ATOKでタブキーにより、確定と同時にタブを入力する ・Boot Camp環境下でCtrl + 1を使えるようにする ・タスクバーが再起動した際にBoot Campのアイコンを再登録する ・VJE-Delta4.0のカナキー自動制御をさせずに辻褄を合わせる ・アプリケーション起動時の強制IME ONに対してOFFを発行 の6つです。 なお、動作にはVisual C++ 2008のランタイムが必須です。 NT4.0用はランタイム不要ですが、DLL強制開放にはPSAPIが必要です。 System32フォルダに入れておいてください。 ・deltaend0.62.zipのファイル一覧 DeltaEnd.txt 本テキスト DeltaEnd.exe 32ビット版実行ファイル DeltaEndDll.dll 32ビット版DLL DeltaEnd64.exe 64ビット版実行ファイル DeltaEndDll64.dll 64ビット版DLL DeltaEnd.ini 設定ファイル Delta4\vjeime.exe VJE-Delta4.0パッチ Delta4\vjed32.dll USER32.DLLラッパー NT4\DeltaEnd.exe NT4.0用実行ファイル NT4\DeltaEndDll.dll NT4.0用DLL DeltaEndSrc.zip ソースコード一式 ・インストール 適当なフォルダに実行ファイルとDLL、設定ファイル合わせて5つを コピーしてください。 32ビットWindowsでは64ビット版の2ファイルはなくても構いません。 DeltaEnd.exeを実行すると通知領域(タスクトレイ)に青い小文字デルタの アイコンが入って動作を開始します。 Vista以降では管理者権限で動作させた方が無難ですが、コントロールパネル等 までカバーしなくて構わなければ、一般権限のままでも問題ありません。 64ビットWindowsでは、DeltaEnd.exe/DeltaEnd64.exe、どちらを実行しても 残りを自動的に起動し、双方が立ち上がった状態になります。 スタートアップに入れるか、Vista以降で管理者権限を与えるには、タスクで ログオン時に開始するよう登録してください。 VJE-Delta4.0で使う場合、パッチを当てる必要があります。 まず、IMEのデフォルトをVJE-Delta4.0から変更して再起動(又はログオフ・ 再ログオン)します。 次に、vjeime.exeとvjed32.dllをvjeime.imeのあるディレクトリ (通常はC:\WINDOWS\System32又はC:\WINNT\System32)にコピーし、 vjeime.exeを実行。 最後にIMEをVJE-Delta4.0に戻して再起動(同じく)です。 Vista以降ではvjeime.exeを管理者権限で実行する必要があるでしょうが、 XPまででしか動作を確認していません。 パッチは最終版である2003/11/19付修正モジュール用のものです。 ・アンインストール 終了して5ファイルを削除してください。 終了させてもDLLが削除できない場合、把握している限りではFirefoxから 開放されない場合がある(plugin-container.exeがウィンドウを全て閉じた場合) ので、そちらを一度終了してみてください。 スタートアップやタスクでの起動を解除して、Windowsを再起動すれば確実に 削除できます。 ・設定 タスクバーの通知領域にある青い小文字デルタのアイコンを右クリック することで行ないます。 4つの機能に対応したチェックがあるので必要に応じて。 ・カナロック支援  レイアウトドライバで無変換キーをカナロックにした状態を想定し、  キー押下と同時にロックON/OFF、かつリピートを抑制する機能です。  カナロックON/OFFの表示は本機能と無関係に行ないます。  小文字デルタのアイコン青がOFF、水色がONです。  反応するキーはカナキー(ひらがな/カタカナではありません)です。  標準の日本語キーボードだとShift+Ctrl+ひらがなカタカナですが、  DeltaEnd.iniを編集することで別のキーにできます。  [Initialize]  vkKana=1d  例えばこうすると、無変換キーをカナにできます。  vkKanaはカナにしたい仮想キーコードです。 ・タブ確定  ATOK専用機能で、タブキーに全文確定を割り当てた状態で使います。  タブキーを押すと、全文確定直後にさらにタブが入力されます。  ATOK 2008と2011体験版で動作を確認してあります。  本ソフトの名前の由来であるVJE-Deltaの挙動を模したものです。 ・Ctrl + 1  Boot Camp専用機能です。Ctrl + 1を押すとCtrl無し全角/半角が入力される  のですが、それを本来のCtrl + 1に発行し直します。  IMEのON/OFFは別のキーに割り当てておいてください。  3キー以上の同時押しの時に、1が2回押されたようになるので、  ややデリケートです。 ・Boot Camp介助  タスクバー(explorer.exe)が再起動した際に、Boot Campのアイコンを再登録  する機能です。 ・VJE-Delta4.0  VJE-Delta4.0入力モードの辻褄を合わせる機能です。  カナロックの状態に概ね合わせた挙動をするよう制御します。 ・DLL強制開放  DeltaEndDll.dll/DeltaEndDll64.dllが残ってしまうソフトに対し、  強制的な開放を試みます。  DeltaEnd起動時にウィンドウがあり、終了時にないソフトは、  OSがDLL開放の処理を行なえないことにより発生します。 ・起動時IME ON防止  アプリケーションが起動する際にIMEをONにした直後に、OFFします。 その下の「IME Logger」で開くダイアログでタイミングを調べることが できますが、DeltaEnd.iniファイルへの追記が必要です。  IME Loggerはアプリの実行ファイル名と、WM_IMN_NOTIFYという メッセージの種類を出力します。 アプリの起動が完了した時点で、最後の数字が起動からいくつあったかを 数えて記入すれば動くはずです。でも1は無視した方がいいかも? 書式は、 種類,回数,EXE名 です。  OSやIMEの種類よりはPowerPointはバージョン依存のようで、 手元では以下のようになりました。 8x64/PowerPoint2013/Microsoft IME 8,5,POWERPNT.EXE 7x64/PowerPoint2010/ATOK2013(TSF-OFF) 7x64/PowerPoint2010/OfficeIME2010 XP/PowerPoint2010/OfficeIME2010 8,3,POWERPNT.EXE 7x64/PowerPoint2007/ATOK2008 Vista/PowerPoint2003/ATOK2008 2,3,POWERPNT.EXE 添付のDeltaEnd.iniは7x64/PowerPoint2010のものになっています。 ・プログラム カナロック支援とCtrl + 1はローレベルのキーボードフック、 タブ確定とVJE-Delta制御はウィンドウプロシージャ戻りフック内に 実装しています。 タスクバー再起動時は、自分のアイコンのついでにBoot Campアイコンの 面倒も見ています。 32ビット版と64ビット版の間、実行ファイルとDLLの間でファイルマッピングに よるデータ共有があり、多重起動防止にも使っています。 タブ確定の処理では、このデータ共有により直前のキーを参照しています。 64ビットWindowsではキーボードフックが32/64関係なく動作するので、先に 立ち上がった実行ファイルだけが仕掛けています。 ウィンドウプロシージャ戻りの方は両方が仕掛けます。 DLL強制開放は、コード注入によりダミーウィンドウを一瞬作ることで ウィンドウプロシージャを回し、OSに対し正規のフック開放をさせる 処理になっています。 この部分のために、基本ランタイムチェック無効、関数レベルのリンク有効、 関数の順序指定(→インクリメンタルリンク無効)といったコンパイル時の 制約が発生しています。 ・開発環境 Windows 7 x64 Service Pack 1 Visual Studio 2008 Service Pack 1 Visual Studio 2005 Service Pack 1 謝辞 0.40からの新アイコンを作るに当たり、ツッダキミオ様のLogoShaderを 使わせていただきました。 Symbolフォントを太らせ傾け膨らませただけですが、通知領域には存在感の あるものになりました。 Boot Campアイコン再登録の部分に、yu-hr様のコードを使わせていただき ました。ウィンドウハンドルからモジュール名を取得するものです。 VJE-Delta4.0の差分生成に阿闍梨様のWDiffを使わせていただきました。 コード注入はCodeProject様のソースコードを参考にしました。 元々は株式会社ゼロ様のExternal IME Controllerを改造したところから 始まりました。0.30までは色濃くコードが残っていました。理解も進み 書き直しましたが、あのソースコードは大変参考になりました。 以上、どうもありがとうございました。 ・著作権 DeltaEnd Copyright (c) 2005-2013 by 毎黒仮節渡万(MicroCassetteMan) 扱いは要するに常識の範囲でお願いします。 ・バグ報告は歓迎しますが責任や義務は一切負いません ・再配布の際はアーカイブの内容は変えないでください ・改造版の配布はオリジナルを明記した上でお願いします ・ソースコードレベルでの使い回しは全く構いません ・でも一言触れていただけると心が温まります ・ないと思いますが商利用は連絡ください ---------------------------------------------------------------------- 小松 英之 毎黒仮節渡万 mychro[@]hotmail.co.jp MicroCassetteMan http://mychro.mydns.jp/~mychro/