em1key v1.33

● はじめに

em1key は WindowsMobile 用の強力なキーボードカスタマイズツールです。 W-ZERO3 等さまざまな機種で動作しますが、 デフォルトで EMOBILE の端末、EM・ONE (SHARP S01SH) 向けに作成した 内蔵キーボードの機能拡張設定が付属しています。

EM・ONE は WindowsMobile5.0/6.0 を搭載した端末ですが 独立したソフトキーを持っておらず、他のデバイスに慣れていると少々 操作に戸惑うことがありました。 このプログラムはキーボードの上段 [1][2]〜[9][0] の数値キーをファンクションキーとみなして 左右のソフトキーや [Win][OK] ボタン等を割り当てます。

また従来内蔵キーボードだけで入力できなかった " [ ] { } 「 」" などの 記号を割り当てたり、さまざまな機能追加を行います。 特に面倒な設定も無く、インストールするだけですべての機能が有効になります。

W-ZERO3 (WS003SH/WS004SH/WS007SH/WS011SH) でも全く同じように動作します。 (注意: W-ZERO3[es](WS007SH) のみ Today 画面で [0]〜[9] の操作を 完全に置き換えることができません。それ以外は大丈夫です。)

より細かい機能アサインや変更、さらには A〜Z キーの配列や日本語入力配列、 入力モードの追加など、上級者向けの詳細なカスタマイズ も可能となっています。

PC版 em1keypc もできました。

● 追加の機能配置一覧

数値ボタン [1] [2] [3] [4] [5] [6] [7] [8] [9] [0]
そのまま
押した場合
[ESC] [Win] 左ソフト [ALT] タスク
切り替え
App4 App5 App6 [OK] 右ソフト
長押し [1] [2] [3] [4] [5] [6] [7] [8] [9] [0]
[Ctrl] と同時 [1] [2] [3] [4] [5] [6] [7] [8] [9] [0]
記号ボタン [;,] [:.] [?/] [=-]
[Ctrl]と同時 [ ] 画面回転 NumLock切替
[Shift]を 一度押して離した後 [Ctrl]と同時 { } 画面回転 アプリ終了
カーソルキー
[Ctr]と同時 [Home] [PageUp] [End] [PageDown]
その他 [Tab] [文字]
そのまま押した場合 [Tab] IME の on/off
[Ctr]と同時 タスク切り替え 文字種切り替え

● ソフトキー

[Fn] を押さなくても、数字キーの [3] と [0] がそれぞれ 左右のソフトキーとして働きます。

また [2] [9] が [Win]キーと [OK] ボタンの代わりになります。

● 数値の入力方法

数値は「各キーの長押し」または [Ctrl] を押しながらボタンを押すことで 入力することができます。キーリピート対応です。

数値入力の3種類の方法

[Ctrl] を押しながら [=-] キーを押すたびに NumLock 状態が切り替わります。 NumLock に切り替えると、そのまま入力するだけで数値入力ができます。

● タスク切り替え

[5] キー、 または [Ctrl] を押しながら [Tab] キーで、 起動しているプログラムを順番に切り替えることができます。

[Shift] を押して離した後に、[Ctrl] を押しながら [=-] キーを押すと 最前面のアプリケーションを終了させることができます。

● IME 切り替え

[文字] キーだけで日本語入力 (IME) の On/Off ができるようになります。 入力バッファに未確定の文字が残っている場合は IME が Off になりません。

従来の文字種切り替えは [Ctrl] を押しながら [文字] キーを押すことで可能です。

● アプリケーションキー

[6][7][8] はアプリケーションキーです。 「設定」→「ボタン」で割り当てたプログラムを1キーで起動することができます。

設定画面とキーの対応は次の通りです。(EM・ONE)


● 動作環境

  • プログラムは基本的に汎用で WindowsMobile 5.0/6.0/6.1 で動作します。
  • デフォルトの設定ファイルは SHARP S01SH EM・ONE 向けに作成しています。
    • この設定は全く同じキーボード仕様の SHARP W-ZERO3 (WS003SH/WS004SH/WS007SH) でも動作します。
    • W-ZERO3[es](WS007SH)の場合のみ Today 画面では [0]〜[9] の数値キーを完全に置き換えることができません。 Today 画面以外では大丈夫です。 また [es] のテンキーには対応していません。
  • また設定ファイル(スクリプト)を置き換えることで 完全に別のアプリケーションになります。

● 注意点および使用条件

  • 最小限のテストはしていますが必ずしも動作保障はありませんので 利用する方の自己責任でお使いください。
  • 重要なデータはインストール&実行前に必ずバックアップを 取っておいてください。
  • このソフトウエアが原因で データが消えたり不具合や損害が生じても責任を取ることができません。 補償もいたしませんのであらかじめご了承ください。
  • このソフトはフリーソフトウエアです。自由にお使いいただけますが 内容を改変したものの再配布はおやめください。

● インストール方法

[ 最新版ダウンロードはこちら ]

  1. アーカイブ内に含まれるファイル em1key.ARMWM5.CAB を EM・ONE (ZERO3) 上で実行します。 メモリカードではなく本体メモリ(デバイス)にインストールすることを 強くお勧めします。
  2. 「プログラム」から em1key を実行してください。 設定画面が現れるので、必要に応じて [自動起動] に設定してください。 自動起動に設定しておくとリセットしても勝手に立ち上がるようになります。

なお、すでに他の キーフック アプリケーション が存在していると 起動することができません。 共存させたい場合は ホーミン さんによる 多重キーフック multikeyhook   (ある忘れっぽいプログラマの覚書) 等のプログラムが必要になります。 他のツールとの共存時の動作確認は特に行っておりませんのでご了承ください。

● 常駐を終了する方法

  1. 「プログラム」画面から em1key を呼び出してください。
  2. 左のメニュー内にある「プログラムの終了」を実行します。
自動起動に設定されている場合は、本体のリセットなど 再起動時に勝手に起動します。

● アンインストール方法

  1. 「プログラム」画面から em1key を呼び出して、 必ず自動起動を解除してください。
  2. 「設定」の「プログラムの追加と削除」から「HYP em1key」を 削除してください。
このプログラムはレジストリへの書き込みを行っていません。

● バージョンアップ方法

インストール方法同様に CAB を実行するだけで構いません。
注意! commandscript.txt を書き換えて使っている場合は、 更新時に上書きされないようにご注意ください。 更新前に他の場所にコピーするなどバックアップをとっておいてください。


● よくある質問事項

Q. " < " と " > " の入力方法を知りたい。

A. [Fn] を押しながら [;,] や [:.] を押してください。(EM・ONE のみ)  または [Shift] を一度押して離してから [;,] や [:.] を 押してください。(EM・ONE/ZERO3 共通)

Q. " ` " (バッククオート) の入力方法を知りたい。

A. [Shift] を一度押して離してから、[Fn] を押しながら [P] を押します。(つまり Shift + @ )

Q. [文字] キーの動作だけ元に戻したい。

A. em1key.exe と同じ場所にある scriptcommand.txt ( \Program Files\em1key\scriptcommand.txt ) を 一部だけ修正してください。 282 行辺りにある初期化関数の中に

SETSYSFLAG SYSFLAG_IMESW

という行がありますので、 この行を削除するか先頭に # をつけてコメントアウト してください。 その後一旦 em1key を終了してもう一度起動します。

Q. キーの割り当てを自由に変更したい。

A. こちら を参照してください。

Q. EM・ONE のスクロールホイールにも機能を割り当てたい。

A. 残念ながらまだ割り当てられる手段が見つかっていません。 解析中です。

Q. 長押しの判定時間が長く感じるときがある。

A. 「設定」→「ボタン」→「上/下コントロール」の中の 「ハイライトの移動速度」を「遅く」に、 「ハイライト移動開始までの待ち時間」が「長く」に 設定してあるとキーリピートが遅くなります。

キーリピートが遅いと長押し判定時間の誤差が 大きくなりますので、気になるようでしたら移動速度を速くし、 待ち時間も短くしてみてください。

また長押し判定時間は commandscript.txt の 261行あたりにある KEEPTIME の数値で調整できます。

Q. [Fn] キーにも機能を割り当てたい。

A. 残念ながら [Fn] キーはプログラムで判別することができません。

Q. Ctrl-@ Ctrl-[ Ctrl-\ Ctrl-] Ctrl-^ Ctrl-_ を入力したい

A. 現状割り当てられていないので、 どこかのキーに定義する必要があります。 カスタマイズ を参照してください。

Q. ZERO3 でも動作しますか?

A. W-ZERO3 と EM・ONE のキーボードの仕様は調べた限り同一です。 まったく同じように動作します。 実はこのプログラムの開発自体も W-ZERO3[es] を使いました。

ただし ZERO3[es] (WS007SH) の場合のみ Today 画面では [0]〜[9] のキーの置き換えが完全にできません。 半分ダイヤルキーとしても機能してしまうので注意が必要です。 Today 画面以外では大丈夫です。 また [es] でない初代 ZERO3 では問題ないと思われます。

Q. ZERO3 以外でも動作しますか?

A. em1key 自体は WindowsMobile 汎用のプログラムです。 標準でついている scriptcommand.txt が EM・ONE/ZERO3 向けの 設定となっています。 設定次第では他の機種でも問題なく動作します。 たとえば scriptcommand.txt の中の 286行目あたりにある

SETSYSFLAG SYSFLAG_SCANTEST

という行を削除してください。 これは EM・ONE/ZERO3 の内蔵キーボードかどうかの 判定をスキップするための設定です。

Q. 数値キー以外も機能キーとして利用できますか

A. [0]〜[9]割り当てなどの機能は全部スクリプトで記述しています。 そのため他のキーに同じような機能を割り振ることも可能です。

Q. スクリプトだと動作も重くなったりメモリも消費しませんか?

A. 多くのキーマップをカスタマイズするソフトは、 定義したキーのバイトコードを格納するために キーテーブルを持っています。 そのキー定義部分を拡張して、 キーコードだけでなく簡単な制御文を置けるようにしたのが em1key です。

実際の動作は キーコードをテーブル参照するのと同じくらい単純で、 無理やりテーブルを拡張するよりも軽量です。 たとえば oyayubiwm「親指シフト」 の設定ファイルはテキストで 40KByte ありますが、 読み込んだ後のメモリ上のバイトコードはわずか 2Kbyte です。

Q. 外付けキーボード用に [Ctrl]/[Caps] や [Esc]/[半全] キーの交換ができますか?

A. v1.00〜v1.10 では隠し機能として SYSFLAG_CTRLSWAP 、SYSFLAG_ESCSWAP を内蔵していました。 v1.20 では、これらの機能もカスタマイズの一部として スクリプトだけで記述できるようになっています。

v1.21 付属の scriptcommand.txt はこの設定が 含まれていますので、289行あたりにある

# SETSYSFLAG SYSFLAG_CTRLSWAP

# SETSYSFLAG SYSFLAG_ESCSWAP

の先頭の '#' を取り除いてください。 '#' はコメントのマークなので、これを削除することで機能が 有効になります。

Q. 作成したスクリプトファイルを配布する場合許可が必要でしょうか?

A. em1key 用のスクリプトファイルは自由に配布して頂いて結構です。 特に許可は要りませんし、サンプルや付属の scriptcommand.txt を改変したものでも構いません。


● カスタマイズ方法

このプログラムはインストールするだけで簡単に使うことができます。

どうしても設定を変更したい、カスタマイズしたい、 という上級者のために設定を修正する手段も用意してあります。 専用のスクリプトで内部機能をほとんど置き換えることができるため 非常に強力ですが、設定の記述は独自の言語を使っており低レベルです。

一般キーの配列変更もできるので、 外付けで英語キーボード使ってるけど日本語配列にしたい場合、 逆に日本語キーボードをつないでるけど ASCII 配列で使いたい場合にも 対応できます。


● 謝辞

このプログラムには ctrlswapmini の開発経験が活かされています。 動作確認やさまざまな要望、問題報告など、多数のご協力感謝します。


● 更新履歴

2007/04/25 v1.00
初版。EM・ONE 向けに作成。 よく考えたら HTC X01HT 等 は最初から独立した数字キーがないので、 だったら [0]〜[9] を他の機能に割り当ててしまえばいいのではないかと 作ってみたのがこれです。 内蔵キーボードを使った文字入力よりも 端末を操作している時間のほうが長い人向けです。

2007/04/27 v1.10
  • いくつか script 命令を強化しました。 (DataStack, 変数の間接アドレッシング, 内部情報をGlobal変数としてアクセス, IME状態の取得, 自動起動関数追加)
  • マニュアルを更新し、commandscript.txt にもコメントを追加しました。
  • カスタマイズのサンプルとして 日本語入力を「いろは配列」にする方法、 キーボードを「ABC配列」にする方法を用意しました。 長文を打つ人のこだわりの配列も作れるようになりました。

2007/04/29 v1.20
  • マニュアルの表記ミス(0〜9の対応がずれていた)を修正しました。
  • script 命令を若干強化しました。 (乗算, シフト命令, 変数との比較命令, 内部キーかどうかの判定フラグ)
  • scriptcommand.txt の Ctrl+カーソルキー の置き換え処理で Ctrl が押されたままになっていたので修正しました。
  • カスタマイズのサンプルとして 「親指シフト入力」を追加しました。 外部キーボード利用時に親指シフト入力できるようになります。

2007/05/04 v1.21
  • 設定画面に表示される Help Text を scriptcommand.txt 側で定義できるように変更しました。
  • 一部 script コマンドの追加と修正を行いました。(SETHELP追加)

2007/05/09 v1.22
  • em1key の PC 版を作成しました。 WindowsMobile 版同様にスクリプトを使った 細かなカスタマイズが可能で、設定ファイルの共有もできます。
  • script ファイルを共有できるように ifpc/ifce/endif 命令を追加しました。

2007/05/16 v1.24
  • メニューに設定の読み直しを追加しました。
  • script で現在の TABLE 番号を取得できるようにしました。
  • script に ifsw/ifnsw コマンドを追加しました。

2007/08/11 v1.26
  • Advanced W-ZERO3[es] WS011SH の scancode に対応しました。
  • script コマンド ifpc/ifce/ifsw/ifnsw 命令をネスト可能にしました。

2007/10/06 v1.27
  • カーソルキーも 内部キーボードと外部キーボードの分離判定対応にしました。 他に変更点は無いので、外部キーボードを使用していない場合は 入れ替えなくても大丈夫です。

2007/10/22 v1.28〜
  • PC版のみ、x64 対応

2008/12/20 v1.33
  • CE版のみ

Hiroyuki Ogasawara
http://dench.flatlib.jp/
http://www.vector.co.jp/authors/VA004474/