Windows Mobile 6 エミュレータでコンソールを使う

Visual Studio 2005 では、Windows Mobile 6 のエミュレータを使って開発できますが、コンソールがないため開発が不便です。

以下の方法でWM6にコンソールを追加します。

ホストとなる PC、エミュレータのウインドウ、エミュレートされているデバイスと、3つの環境をとっかえひっかえする作業なので、若干ややこしいです。

共有フォルダの作成

PC側のエクスプローラで、ふつうにマイドキュメント\wm6 を作成。共有設定は必要ありません。

Windows Mobile Developer Power Toys のインストール

PC側で、MS のサイト http://www.microsoft.com/downloads/details.aspx?familyid=74473FD6-1DCC-47AA-AB28-6A2B006EDFE9 から WindowsMobilePowerToys.msi をダウンロードして実行。

C:\Program Files\Windows Mobile Developer Power Toys\PPC_Command_Shell\arm にある、

  • cmd.exe
  • console.dll
  • shell.exe

この3つを先に作った共有フォルダ wm6 にコピーする。

エミュレータのネットワーク設定

Virtual PC 2007 をインストールする

Download Virtual PC 2007 - 日本語 from Official Microsoft Download Center から setup.exe をダウンロードしてインストール。

必要なのは実は、同梱されている Virtual Machine Network Driver for Microsoft Device Emulator だけなので、Virtual PC 自体は設定も実行もしません。

エミュレータの設定

Visual Studio 2005 で、 ''ツール - デバイス エミュレータ マネージャ'' を開き、Windows Mobile 6 Emulator のどれか(今回はJPN Windows Mobile 6 Classic Emulator。もちろん英語版 Classic も可。他は試していません)を ''右クリック - Connect'' でエミュレータを立ち上げます。

エミュレータウインドウのメニュー ''File - Configure'' を選び、Emulator Properties ダイアログを出します。

  • General タブ下段の ''Shared folder'' に、wm6 フォルダを設定
  • Network タブ上の ''Enable NE2000 PCMCIA network adapter and bind to'' をオンにして、コンボボックスを「Intel(R) 82567LM Gigabit Network Connection」に

ダイアログをOKで消したら、メニュー ''File - Reset - Hard'' でエミュレータを再起動します。

バイスの設定

エミュレータ内の Windows Mobileバイスのスタートメニューから ''設定'' を起動し、接続タブをタップ、ネットワークカードを起動します。

''ネットワークカードの接続先'' を「インターネット設定」、''アダプタ'' を「NE2000 互換イーサネットドライバ」として右上のOKボタンをクリック。

スタートから ''プログラム'' を開いてファイルエクスプローラを選択、マイデバイスに ''Storage Card'' があれば設定完了です。

TRE のインストール

TRE は Windows CE 用のレジストリエディタです。
PC側で、http://www2r.biglobe.ne.jp/~tascal/download/pocketpc/tre.htm から tre090p.zip をダウンロードします。
通常の Setup は使えないので、zip を展開し中にあるファイル TRE.arm.CAB を wm6 にコピーします。
バイスのファイルエクスプローラで マイデバイス\Storage Card を開いて TRE.arm*1 を実行するとインストールできます。
インストールする場所として、 ''デバイス'' を選んで「インストール」ボタンをタップします。
「正常にインストールされました」メッセージが出たら右上のOKボタンでインストーラを抜けます。

スタートメニューからプログラムを選ぶと、TRE のアイコンがあります。

シェルのインストール

バイスのファイルエクスプローラで マイデバイス\Storage Card を開き、''メニュー - すべてのファイルを表示'' をタップします。
cmd, console, shell の3つのファイル*2を選択して、''メニュー - 編集 - コピー'' を選択。
''マイデバイス\Windows'' に貼り付けします。

レジストリを編集

バイスで スタート - プログラム を開いて TRE を起動して、以下のレジストリを設定します。

[HKEY_LOCAL_MACHINE\Drivers\Console]
"OutputTo"=dword:00000000
"Font"="tahoma"
"Size"=dword:00000009

OutputTo だけはもとから存在するので、値を編集。
あとの二つは下段のメニューの「新規」を使って、Fontは文字列、Size は DWORD値 として作成。

編集が完了したらエミュレータウインドウのメニューでデバイスをリセット(File - Reset - Soft)して再起動します。

コマンドプロンプトの起動

バイスのファイルエクスプローラを使って マイデバイス\Windows\cmd を開くと、Command Prompt が起動します。
(プログラムの中にcmdのショートカットを作れないかな?)

*1:WM6デバイスでは拡張子が表示されない

*2:拡張子が表示されていないのに注意