« [Window Mobile]WX310K(京ぽん2)からAdvanced/W-ZERO3 [es]にアドレスとブックマークを転送 | Main | [Windows Mobile]Advanced/W-ZERO3 [es]のACアダプタEA-83の改造で電源問題解決 »

2007.08.01

[Window Mobile]Advanced/W-ZERO3 [es]でVBScriptとJScriptを走らせる

Advanced/W-ZERO3 [es]でVBScriptとJScript(JavaScript)を実行する方法があったので紹介します。

Micro Script Hostのインストール

newObjects (ZmeY soft)のトップページから「Products>ActiveX Components>newObjects ActiveX Pack1 (AXPack1)」とたどり、「newObjects ActiveX Pack1 (AXPack1)」のページまで来ます。

ここにある「CAB (Pocket PC ARM)」をダウンロード(ファイル名は ActiveXPack1.PPC_ARM.CAB)、Advanced/W-ZERO3 [es]にインストールします。

vbscript.dllのインストール

これだけだとJScriptしか使えない(jscript.dllは最初っから入ってます)ので、VBScriptが使えるようにvbscript.dllをインストールします。

vbscript.dllは主にeMbedded Visual Basic 3.0のランタイムとして存在します。

eMbedded Visual Basic Runtime for Windows Mobile-based Pocket PC 2003

上記ページから「msvbppc.armv4.cab」をダウンロードし、インストールします。

msvbppc.armv4.cabにはvbscript.dllは入ってないそうです。

NS Basic/CEのランタイムをインストールするのが近道ですね。

ドキュメントのダウンロード

「newObjects ActiveX Pack1 (AXPack1)」ダウンロードの「ALL DOWNLOADS」をクリックすると現れる
NDL(newObjects Development Library)をダウンロードします。解凍するとchm形式のヘルプが出てきます。詳細なるマニュアルなのでよく読みましょう。

マカーなら、Chmoxで読めます。

IWAの日記さんによると、デバイス上でもCHMReader.Netで読めるそうです。

拡張子の関連付け

拡張子vbsとjsを/Program Files/AXPack1Family/nwmicrohost.exeに関連付けます。
PocketTweakを使うといいでしょう。

コマンドラインはvbsもjsも以下のような感じです。

"\Program Files\AXPack1Family\nwmicrohost.exe" "-nohelp" "%1"

使い方

/Program Files/AXPack1Family/nwmicrohost.exeを起動するとコンソールのようなものが起動するので、メニューの「Run」を実行、書いたスクリプトを指定。これでスクリプトを実行できます。
開く種類を「JScript」と「VBScript」から選べます。

通常は拡張子の関連づけをした上で、GSFinder等から実行する方がいいかと思います。
ウインドウを開かずにスクリプトを実行する方法があるかどうか、調査中。

スクリプトの例

VBScriptの例です。テキストエディタで拡張子vbsのファイルとして保存し、実行します。

'変数宣言の強制
Option Explicit

Host.Msg("VBScriptキター!!")

Dim a, i

a = Abs(-3)
Host.Msg(a)

For i = 0 To 10
Host.WriteLine("キター " & i)
Next

Host.WriteLine(Now)

Host.WriteLine(Len("あいう"))

'Host.Exit

以上。
JScriptの例は、要するにJavaScriptです。サンプルも付いているので、ここでは割愛します。

実は、僕はeMbedded Visual Basic Runtimeのでなく、NS Basic/CE 7.0のランタイム付属のvbscript.dllを使っているので、上記のサンプルは一部動かないかもしれません。
そう、NS Basic/CE 7.0のvbscript.dllでも動きます。NS Basic/CE 7.0のプロシージャやオブジェクトが使えるといいんですけどね。

総括

AXPack1にはSQLite3をはじめ、ネットワーク系のオブジェクトなどギッチリ詰め合わせになっていて、相当いろいろできそうです。
NS Basic/CE 7.0のランタイムをチャンポンにすることで、NS Basic/CE 7.0由来のプロシージャ、オブジェクトが使えるとおいしいかも(ちなみに僕はNS Basic/CEの正規ユーザーです)。

何か分かったら教えてください。

余談

その昔、bSquareからbUSEFUL Utilitiesというソフトが出てたんですよね。(参考)

これに含まれていたbUseful Scriptは、VBScriptとJScriptを実行できたようです。
サスペンドから起きてタスクを実行できるbUseful Schedulerと組み合わせると、かなり高度なことができたと思います。

当時僕はhp 200LXからjornada720に乗り換えたところで、何もできないjornada720の環境を劇的に改善するものとしてすごく欲しかったんですが、結局買わず仕舞い。

|

« [Window Mobile]WX310K(京ぽん2)からAdvanced/W-ZERO3 [es]にアドレスとブックマークを転送 | Main | [Windows Mobile]Advanced/W-ZERO3 [es]のACアダプタEA-83の改造で電源問題解決 »