em1keypc 64bit Windows でも 親指シフト

これまで動作確認程度にしか使っていなかった 64bit 版 Windows ですが、
本格的に移行してみたら結構快適でした。家の環境も 64bit に完全移行
してしまいした。

2GB 7000円くらいで増設メモリも買ってきて、合計 4GB のメモリも
しっかり認識しています。
VirtualPC で RAM 1GB 以上割り当てるなんて贅沢もできます。

64bit 環境でも基本的に 32bit アプリケーションがそのまま動きます。
64bit 化の恩恵を受けるには 64bit 専用で build しなければなりませんが、
必ずしもすべてのアプリが焦って対応する必要は無さそうです。

問題となるのはドライバ関連と dll の互換性です。
32bit アプリケーションは 32bit dll しか読めず、64bit アプリケーション
が呼び出せるのも 64bit dll だけです。

たとえば IE の x64 版は 32bit 用に配布されているプラグインが使えない
ので、この場合は 32bit 版 IE を使うことになります。よって 64/32bit
両バージョンが存在するアプリでは、プラグインも2種類作っておく必要が
あるでしょう。

64bit といっても正確には IA64 もあるので、ここでは x64 を指していると
思ってください。Windows 内部では x64 は AMD64 と表現されることもある
ようです。

 WIN64 (64bit)
   x64  (AMD64 と表記されることもある)
   IA64

 WIN32 (32bit)
   x86

完全な環境移行のために em1keypc も 64bit に対応してみました。
em1keypc 1.28 for PC

em1key はもともと WindowsMobile 用に作ったキーカスタマイズツールです。
定義ファイルの script により、応用の1つとして 親指シフト入力
できるようになります。

従来の em1keypc も一応 64bit 環境で動作しました。ただキー置き換えは
有効なものの、64bit アプリケーションでは IME 状態との同期がとれません。
手動で em1keypc の状態も切り替える必要がありました。

x64 版も bulid したので、両方常駐させることで一応 32bit アプリケーションでも
64bit アプリケーションでもどちらでも動作するようになります。

  em1keypc.exe    (x86 32bit アプリ用)
  em1keypc64.exe  (x64 64bit アプリ用)

全く同じプログラムを 2つ起動しなければいけませんが、これは上で書いた
とおり dll を共有できないことに起因します。手抜きです。
とりあえず x64 で動かしただけの暫定対応なので、この辺は今後の課題です。

oyayubiwm を入れてから
・em1keypc を起動して [自動起動に設定] → [隠す]
・em1keypc64 を起動して [自動起動に設定] → [隠す]
これで 64bit 環境でも一応親指シフト入力できるようになりました。
(Vista x64 のみ確認しています、XP x64 は未確認です)

oyayubiwm em1key用親指シフト入力スクリプト
em1keypc v1.28 for PC (x86,x64)
em1key WindowsMobile

WindowsMobile6 で imekeyset5 を使う

imekeyset5 は WindowsMobile5 で日本語の漢字変換に関する操作を
カスタマイズするツールです。たとえば変換に使うキー、文節移動キー、
分節伸縮キー、等を任意のキーに設定することができます。

・ZERO3[es] のテンキー入力時に方向キーだけで漢字変換できるようにする。
 MSIME 利用時でも、ATOK と同じように操作できる。

・外部キーボードをつないでいるときに、カーソルキーを使わないでホーム
 ポジションから変換操作ができるようにカスタマイズする。

・使い慣れたほかの漢字変換エンジンの操作に合わせる。

などといった応用が考えられます。

PC の MS-IME では、コントロールパネルからこれらのキー割り当てを自由に
変更することができました。この機能は WindowsCE にも受け継がれており、
HandheldPC など初期の WindowsCE ではコントロールパネルから同様の
カスタマイズが可能です。

PocketPC になってからこの辺の IME 設定がごっそり削られていて、キー
割り当ての変更もできなくなっています。ただレジストリにはエントリが
存在しており、直接書き換えるときちんと機能します。
単に設定画面としてのインターフェースのみ削られていることがわかります。

imekeyset5 はこの IME のカスタマイズ用レジストリを直接書き換えている
だけです。キー割り当て表を import/export したり、style 選択といった
UI のみ作っています。実際のキー割り当てなど便利な機能は MS-IME が
もともと持っているものです。

そのためマニュアルにも書いていますが、設定が終わったらメモリ節約の
ためにアンインストールしても構いません。設定の変更が必要な時だけまた
インストールして使えば OK です。

今回 EM・ONE が WindowsMobile6 になったので動作確認してみました。
WM6 でも MSIME のバージョンは全く同じ 3.1 で、レジストリのエントリ
も構造も同一なようです。実際に imekeyset5 も動作し、カスタマイズ
できました。
同じ WindowsMobile6 の Advanced W-ZERO[es] (WS011SH) でも同様に動作
すると思われます。

imekeyset5 v1.21

●MSIME に切り替える

EM・ONE や W-ZERO3[es] は ATOK が入っています。WM5/WM6 の ATOK
ではカスタマイズ手段が無さそうなので、キー割り当てを変更するには
まず MSIME に切り替える必要があります。

設定→システム→ATOK設定

で「日本語入力にATOKを利用する」のチェックを外して再起動します。
これで MSIME に切り替わります。

●W-ZERO3[es] 向け設定手順

MSIME の場合、標準状態だとテンキー入力時に漢字変換ができません。
そのためカーソルキーだけで変換操作できるように設定できます。

(1) imekeyset5 を install して起動する
(2) [Phone Style追加] ボタンを押す
(3) 左上の Style 選択、プルダウンメニューから [ Phone ] を選ぶ
(4) すぐ右の [標準にする] ボタンを押す
(5) [EXIT] して リセットボタンを押す

●独自カスタマイズまでの流れ

(1) imekeyset5 を install して起動する
(2) 左上の Style 選択、プルダウンメニューから [ MSIME_PPC ] を選ぶ
(3) [Custom にコピー] を実行して複製する
(4) [Customを出力] でファイルに書き出す (export)
(5) 設定変更
(6) [Customに読込] で書き換えた設定を読み込む (import)
(7) 左上の Style 選択を [ Custom ] に切り替える
(8) [標準にする] ボタンを押す
(9) [EXIT] してリセットする

すでにカスタマイズしてあるファイルを読み込むなら、(4) と (5) を
飛ばして、複製後にすぐ (6) で読み込みます。
実際の設定例のサンプルがいくつか付属しています。

keyset_wm5egg.txt
keyset_wm5egg2.txt

など。

関連エントリ
EMOBILE EM・ONE (S01SH) の α化

EMOBILE WindowsMobile6 の EM・ONE

WindowsMobile6 にアップグレードした EM・ONE (S01SH2) を使ってみました。

●フォントの描画

初期状態でのフォント描画速度が改善されていました。
WM5 の EM・ONE (S01SH) の場合は、FontCache の設定で増やしておかないと
最初非常に低速でした。フォントキャッシュ容量は Smart-PDA.net Pocketの手
等のソフトを使って設定することができます。

WM6 の EM・ONE (S01SH2) の場合は、W-ZERO3[es] などと同じように、
特に設定しなくても十分な速度で動いています。

●リモートデスクトップ

リモートデスクトップで PC (Vista) につないでみました。

emone remote

特に LAN 設定をしなくても、USB 等の ActiveSync 接続でもつながります。
今回は Bluetooth 経由なので遅いですが、それなりに動きます。

Windows 側では、あらかじめ システム→リモート から
「リモートデスクトップ」の接続を有効にしておく必要があります。

オプションの「リモートデスクトップを画面に合わせて調整する」と
「全画面表示」にチェックしておくと 800×480 の画面になります。
全画面時は (OK) で切断できました。

EM・ONE はマウスをつなぐと快適です。

emone remote

さらに外部キーボードもつないでいます。ただキーコードの違いからか
入力できない文字があったので、実用するにはもう少しきちんと調べる
必要がありそうです。

●名刺リーダー

この日のために(?)たまっていた名刺を読み込ませてみました。
内蔵のカメラで撮影するだけで連絡先に名刺の内容を登録してくれます。

認識は思ったより時間がかかり 1枚あたり 15~30秒 ほど待たされる
ことがあります。読み込みは結構正確で 社名、名前、メールアドレス、
URL などさまざまな情報を読み取って識別してくれます。

読み込んだ情報は ActiveSync で同期し、PC の Outlook 上で確認と
誤認識の修正を行いました。以下気がついたことなど

・EM・ONE のカメラは左端なので、位置合わせに少々慣れが要ります。

・シャッター音がした後もしばらくは動かさないほうがいいようです。
 若干タイムラグがあります。

・縦長の名刺でも、横向きのまま文字認識することができました。

・ロゴマークなどに書かれている文字も認識しようとします。不要な
 文字が混ざることがあるため、不要な部分はできるだけうつさない
 方がいいようです。

EMOBILE EM・ONE (S01SH) の α化

WindowsMobile6 へのアップグレードのためメーカー送りになっていた
EM・ONE が届きました。予想よりもずっと早い仕上がりでした。

EMOBILE EM・ONE WindowsMobile6 アップグレード申し込み
ZERO3[es] に 小型 Bluetooth アダプタ PTM-UBT3S をつないでみた

5日の申し込みで11日の発送なので、実質8日間で戻ってきたことになります。
最初に電話した申込日から数えてちょうど2週間です。
外側は一緒なのに、中身が変わっただけでなんとなく新機種を購入した
気分です。

変更点は WindowsMobile6.0 へのアップグレードです。
結果として EM・ONE α (S01SH2) 相当となり、S01SH2 のマニュアルや
CD-ROM も付属していました。

ぱっと見てわかるメニューの違いは下記のとおり。

● Today 画面
・JAJAH のリンク
  IP 電話です。
  プリインストールではなく、タッチすることでアプリのダウンロード
  &インストールが行われます。

●設定画面
・S01SH情報
  S01SHバージョン: 2.00

・External GPS
・Windows Update
・暗号化

●プログラム
・3D Box ダウンロード (URLのショートカット)
・Messenger
・Sprite Backup
・Windows Live
・名刺リーダ
・リモートデスクトップモバイル

おそらく Advanced W-ZERO3[es] WS011SH とほぼ同じだと思われます。
これで WindowsMobile6 でのプログラムの動作確認がしやすくなりました。
imekeyset5 の対応もできそうです。

64bit 環境へ移行

昨日の「64bit 開発設定のメモ」
Executable files: に DXSDK の bin\x64 を path を追加しましたが、
よく考えると x86 (32bit) 上で実行する分には不要なものでした。
訂正させていただきます。

実際に Vista x64 をメイン PC にインストールしました。
現在 Windows Vista x86 (32bit) が入っているので 2つ目の HDD に
入れてみます。

HDD 1 – C: Vista x86 (32bit)
HDD 0 – D: Vista x64 (64bit) install 予定

OS が起動した状態から install できなかったので、いったん DVD から
boot します。

インストール予定の HDD 0 側はあらかじめ 100G ほどの空きを作って
おきました。特に HDD を初期化しなくても新規相当で install 可能で、
もとからあったフォルダやファイルなどもそのまま残ります。

install 後、とりあえず Vista x86 と x64 の dual boot となります。
Windows Vista では、どちらで起動してもシステムが入っている方が
C: ドライブに割り当てられます。

x86 (32bit) で起動すると x64 側ドライブ(HDD 0)が D:
x64 (64bit) で起動すると x86 側ドライブ(HDD 1)が D:

システムドライブが固定されるため、それぞれツールなどをインストール
しても混乱せず、混用されないのでこの方が便利です。

アプリケーションは OS 毎に個別のインストールになりますが、
作成したデータなどは共有したいところです。
起動する OS によってフォルダのドライブが異なるため、データは一意に
アクセスしづらくなります。

たとえば x86 で C:\DATA にデータが格納してあった場合、x64 で起動
すると D:\DATA になります。

そこで、両方で共通にアクセスする可能性のあるフォルダは
symbolic link を作りました。
コマンドプロンプトから下記のように実行します。

mklink /d C:\DATA D:\DATA

これで x64 側でも C:\DATA が作られます。実際のデータは D:\DATA に
格納されますが、使ってる分には完全に C:\DATA でアクセスできます。

mklink 実行時に権限が無いといわれることがあります。その場合は
コマンドプロンプトを管理者権限で起動しておきます。スタートメニュー
から起動するとき、右ボタンの「管理者として実行」を選択します。

以前だったらこうなることを想定して、普段から仮想ドライブを作って
おいたりしなければいけないところです。Vista の symbolic link の
方がフォルダ単位で柔軟に対応できるし慣れてるので扱いが楽です。

64bit 環境でも 32bit のアプリケーションがそのまま動作するので、
今のところは特に不具合もなく使えています。普段使ってるツールも
動くし乗り換えてもいいかもしれません。まだ1日しか使ってないけど。

x64 専用アプリに切り替えなくても、たとえばコンパイラの設定も
x86_amd64 (32bit 用 64bit コンパイラ) のままでも動きます。

Program Files も2種類できていました。

C:\Program Files
C:\Program Files (x86)

実行するアプリケーションによっていくつかの環境変数が切り替わる
ようになっています。

MSDN 64-Bit Windows WOW64 Implementation Details

たとえば環境変数 ProgramFiles は、64bit アプリでは
C:\Program Files を指していますが 32bit アプリケーションでは
ProgramFiles は C:\Program Files (x86) になっています。

同じように PROCESSOR_ARCHITECTURE も必要に応じて AMD64 や x86
になります。

急に乗り換えたのは Maya plug-in を x64 に対応させるためでした。
そろそろメモリが厳しいということで、グラフィックデザイナーの環境が
64bit に移行しつつあります。