ターガス・ストアウェイ・キーボード用キーテーブル書き換えツール (GENIOe用) tskPatch.exe v1.10 TOSHIBA の PocketPC PDA GENIOe550 用 Targus Stoaway Portable Keybard がよう やく登場しました。このキーボードは、フルサイズの外付けタイプですが、折り畳み 式でコンパクトに持ち歩くことができます。ペン入力だけでなく、いざというときに はキーボード入力も出来るようになるわけです。 早速入手してみたものの、標準ではキー配列を変更する手段が提供されておらず自分 の好みに合わせた細かいカスタマイズが出来ません。例えば [/] キーの位置など、 キーボード自体がタッチタイプできる作りだけに、気になる部分も出てきます。そこ で、無理矢理ながらキーマップを書き換えてしまうツールを作成しました。 このツールを使うことで、キー1つ1つの位置を書き換えることができます。例えば [CapsLock] と [Ctrl] キーの位置を入れ替えることが可能です。 これは GENIOe 用 Targus Stowaway Keyboard のキー配列テーブルを書き換えるツー ルです。このプログラム tskPatch.exe 自体は WindowsPC で動作し、Targus Stoaway Keyboard のドライバを書き換えます。書き換えたドライバを PocketPC に組み込む ことでカスタマイズを実現します。 v1.10 -c オプション追加、キーマップの作成が可能になった ●動作確認環境 ・TOSHIBA PocketPC GENIOe550 (PocketPC 2002 へアップグレード済み) ・Targus Stowaway Portable Keyboard GENIO e 用 ・Targus Stowaway Portable Keyboard ドライバ v1.6 ●注意事項 ・実際に使用する前に、必ず重要なデータのバックアップを取って置いてください。 このプログラムはフリーソフトウエアである代わりに動作無保証であり、必ず利用 者の自己責任において使用するようにしてください。 ・このプログラムは筆者の所有しているバージョンのソフトウエアでのみ動作確認さ れています。バージョンの異なるドライバを書き換えようとした場合、このソフト ウエアは正常に動作しない可能性があります。 ・このソフトウエアの使用またはこのソフトウエアによって書き換えられたバイナリ ファイルを使うことによって発生したいかなる損害に対しても、このソフトウエア の作者には何の責任もないものとします。 ・これら注意事項に同意していただいた場合のみ、このソフトウエアを使用すること が出来ます。 ・このソフトウエアはフリーソフトウエアです。 ●使い方 GENIOe550 に Targus Stowaway Keyboard の環境がすでにインストールされているも のとします。 (1) ActiveSync で WindowsPC と PocketPC を接続した後、WindowsPC 上のエク スプローラからモバイルデバイスを開きます。 (2) \Windows を開き、中の Stowaway.dll を WindowsPC 上の適当なフォルダに コピーしてください。(エクスプローラで、拡張子やすべてのファイルが表示 されるように設定を変更しておいてください。) (3) 同じフォルダに、このプログラム(tskPatch)のアーカイブを展開して出てき たすべてのファイルを入れておきます。 (4) コマンドプロンプトを開いて、上記フォルダに移動した後 tskPatch.exe を実行してください。オリジナルの Stowaway.dll を、Stoaway_Org.dll と いう名前で保存します。その後書き換えた新たな Stowaway.dll ファイルが 作られます。 (5) モバイルデバイスの \Windows 内の Stowaway.dll を、Stowaway0.dll など 別の名前にリネームします。 (6) (4) で作成した新しい Stowaway.dll を、モバイルデバイスの \Windows に コピーしてください。 (7) PocketPC をリセットすると、新しい Stowaway.dll の設定が有効になります。 この段階で、(5) でリネームした Stowaway0.dll を削除することが出来ます。 なお、デフォルトで読み込まれる設定ファイルでは何もしていません。キー配列の変 更を行うためには、目的にあったキーボード設定ファイルを指定する必要があります。 ●元に戻すには Stowaway_Org.dll を Stowaway.dll にリネームして、使い方の (4)〜(7) の手順で PocketPC に転送してください。 ●キーボード設定ファイル 以下の設定ファイルが付属しています。これらはテキストファイルなので、テキスト エディタを使って書き換えることができます。 ・ patchTable.src デフォルトで読み込まれる設定ファイルです。初期状態では何も 行いません。このファイルを書き換えて任意のキー設定を行うこと が出来ます。 ・ capsctol.src [CapsLock] と [Ctrl] キーを入れ替えます。 ・ fulljis.src 出来る限り JIS 配列に近づくよう多くのキーを入れ替えるサンプ ルファイルです。 例えば capsctol.src を使用して [CapsLock] と [Ctrl] キーを入れ替えるなら、 使い方の (4) のところで次のように実行します。 tskPatch -fcapsctrl.src ● tskPatch のコマンドオプションについて (1) tskPatch [options1] (2) tskPatch -c [options2] (1) 設定ファイルに従い、キーマップを書き換えた Stowaway.dll を作成し ます。 -f<設定ファイル名> デフォルトは tskPatch.src です -o<出力ファイル名> デフォルトは Stowaway.dll です -d<入力ファイル名> デフォルトは Stowaway_Org.dll です (2) キーマップを出力します。出力するマップデータは設定ファイルの startKey で指定します。 -f<設定ファイル名> デフォルトは tskPatch.src です -d<入力ファイル名> デフォルトは Stowaway_Org.dll です -c<出力するファイル名> デフォルトは keymap.src です ●キー配列変更ファイルの説明 startKey [キーワード] バイナリ中からキーボードマップデータを探し出すためのキーワード文字列 を指定します。 clearMap 選択しているキーボードマップをクリアします。 selectMap [選択ID] キーボードマップを選択します。selectMap を複数指定することで、一度に 複数ののキーボードマップを書き換えることが可能です。 selectMap ALL すべてのキーボードマップを選択します。 keycodea [変更元のKEYCODE] [変更後のKEYCODE] [変換モード] 選択されているキーボードマップの中にある [変更元のKEYCODE] を [変更後のKEYCODE] に置き換えます。[変換モード] は省略可能で、省略す ると 0 とみなします。3つのパラメータはすべて 16進数で指定します。 [変換モード]の最下位バイト 00 すべて置き換えます 01 最上位バイトをカウンタ値として、任意番目に現 れたパラメータのみ書き換えます。 例 00000001 > 1番最初に出現したパラメータのみ 例 01000001 > 2番最初に出現したパラメータのみ 例 02000001 > 3番最初に出現したパラメータのみ ●実際の例 ------------------------------------------------------------------------------ #### 2002/03/23 Ogasawara Hiroyuki # TargusStowaway for GENIOe550X のキーボードマップを書き換えるツール # # 動作は無保証です。ドライバのバージョンアップもしくは異なるバージョンの # バイナリを書き換えることで、このツールが正常に動作しない可能性があります。 # 書き換えた DLL により PocketPC2002 本体が正しく動作しなくなっても一切保証 # をいたしません。自己責任で使用してください。 # '#' で始まる行はコメントです。詳しくはマニュアルファイル tskPatch.txt を # 参照してください。 #---------------------------------------------------------------------------- # 日本語キーボード用 #---------------------------------------------------------------------------- #startKey "English (US-Standard)" startKey "Japanese" #startKey "English (US-Dvorak)" # #---------------------------------------------------------------------------- # [CapsLock] と [Ctrl] の入れ替え #---------------------------------------------------------------------------- clearMap selectMap ALL # #------------ old new keycode 04000014 04000011 // CAPS -> CTRL keycode 04000011 04000014 // CTRL -> CAPS # clearMap ############################################################################ # selectMap でキーマップを選んで、keycode でキーコードの入れ替えを行います。 # selectMap を複数書くことで、同時に複数のキーマップの keycode 入れ替えが可 # 能です。選択したキーマップを初期化するには clearMap を使います。同時にすべ # てのキーマップを選択するには "selectMap ALL" が使えます。 # 作者が調べたところでは、2002/03/23 現在以下の11個のキーマップが存在してい # るようです。 #selectMap 00000000 // normal #selectMap 00020000 // shift #selectMap 00200000 // numlock #selectMap 00100000 // ? #selectMap 00120000 // ?+shift #selectMap 00010000 // ? #selectMap 00030000 // ?+shift #selectMap 00040000 // ? #selectMap 00060000 // ?+shift #selectMap 00080000 // Fn? #selectMap 000A0000 // Fn+shift? ############################################################################ # startKey は、バイナリ中からキーマップ領域を探し出すためのマジックナンバー # を指定します。2002/03/23 現在、1つの DLL 中に 3つのキーマップが格納されて # いるようです。 #startKey "English (US-Standard)" #startKey "Japanese" #startKey "English (US-Dvorak)" ############################################################################ # keycode は、実際のキーコードを入れ替えます。 # keycode 元のKEYCODE 新しいKEYCODE # KEYCODE は16進数8桁(32bit)で指定します。最下位 byte は Windows の VK_??? # に相当します。最上位 byte の意味は、わかっているところでは次のものがあり # ます。 # ・アルファベット、数値以外は最上位 byte に 04 がつく # ・直接文字コードを指定するときは最上位 byte が 10 になる ############################################################################ ------------------------------------------------------------------------------ ●キーコードの資料 注意 これは開発時のメモです。すべて調べつくしたわけではないので間違いや不明 な部分が含まれています。 ---------------------------------------------- ・Japanese-Normal 31 [1] 32 [2] 33 [3] 5A [Z] 34 [4] 35 [5] 36 [6] 37 [7] 00 51 [Q] 57 [W] 45 [E] 52 [R] 54 [T] 59 [Y] 040000BF [/] 58 [X] 41 [A] 53 [S] 44 [D] 46 [F] 47 [G] 48 [H] 04000020 [SPACE] 04000014 [CAPS] 14000009 [TAB] 04000011 [CTRL] 00 00 00 00 00 00 00 0400005B [WINDOWS] 040000A4 [ALT] 00 00 00 00 00 00 00 00 43 [C] 56 [V] 42 [B] 4E [N] 040000BD [-] 040000DC [\] 04000008 [BS] 02000001 app1 (受信トレイ) 38 [8] 39 [9] 30 [0] 04000020 [SPACE] 10000040 [@] 040000DB [[] 040000DD []] 02000002 app2 (連絡先) 55 [U 49 [I 4F [O 50 [P 1000003A [:] 1400000D [RETURN] 02000003 app3 (予定表) 00 4A [J] 4B [K] 4C [L] 040000BA [;] 1000005F [_] 1C000026 [UP] 02000004 app4 (仕事) 00 4D [M] 040000BC [,] 040000BE [.] 02008000 [Today] 0400002E [DELETE] 0C000025 [LEFT] 1C000028 [DOWN] 0C000027 [RIGHT] 00 00 00 00 040000A0 [L-SHIFT] 040000A1 [R-SHIFT] 00 00 ---------------------------------------------- ・Japanese-Shift 31 1 1(!) DE 04 2 '(") 33 3 3(#) 5A Z 34 4 4($) 35 5 5(%) 37 6 7(&) 27 10 7 ' 00 51 Q 57 W 45 E 52 R 54 T 59 Y BF 04 / 6(^) 58 X 41 A 53 S 44 D 46 F 47 G 48 H 20 04 SPACE 14 04 CAPS 09 04 TAB 11 04 CONTROL 00 00 00 00 00 00 00 5B 04 LWINDOWS ([?) A4 04 LMENU (ALT) 00 00 00 00 00 00 00 00 43 C 56 V 42 B 4E N BD 04 - 3D 10 (=) DC 04 \ | 08 04 BS 01 02 app1 38 8 9(() 39 9 0()) 30 0 C0 04 `(~) 20 04 SPACE 40 10 @ 60 10 ` DB 04 [ DD 04 ] 02 02 app2 55 U 49 I 4F O 50 P 3A 10 : 2A 10 * 0D 14 RETURN 03 02 app3 00 4A J 4B K 4C L BA 04 ; 2B 10 + 5F 10 _ BF 04 /(?) 26 1C UP 04 02 app4 00 4D M BC 04 , < BE 04 . > 00 80 00 02 2E 04 DELETE 25 0C LEFT 28 1C DOWN 27 0C RIGHT 00 00 00 00 A0 04 LSHIFT A1 04 RSHIFT 00 00 2002/03/22 2002/03/23 -c オプション追加、キーマップの作成が可能になった 小笠原博之 oga@art.udn.ne.jp