Kuroda Software Service
VBScriptでHelloWorld
  [サイトマップ]

コンテンツ内メニュー

表示モード 全項表示  部分表示



マークの色と認証の関係

一般公開

無料認証

購入認証


認証についての説明

無料アカウント作成フォーム

有料ページ購入フォーム


ほかのコンテンツトップページ

VBScriptでHelloWorld

VBScriptによるHelloWorldプログラミング

         VBScriptのメリット

HTABOXコアプログラミングでは、JScriptと同様にVBScriptを使用することができます。JScriptがIDispatchExオブジェクトを前提としているのに対し、VBScriptはIDispatchオブジェクトを前提とした動作を行いますからJScriptより高速です。また、関数がオブジェクトとしてtoStringメソッドを持つこともありませんので、ソースの隠蔽という面からも有利です。下記VBScriptソースはサンプルフォルダにHello.vbsとして存在します。

dim WIN32

'#define set '

set WIN32 = CreateObject("HTABOX.Application")

'#undef set

'#define WIN32 '

WIN32.ScriptFullName = WSH.ScriptFullName

'#undef WIN32

dim DIR: DIR = WIN32.GetScriptDirectory()

dim HTA: set HTA = WIN32.CreateHtaWindow(DIR & "\button.htm")

dim SCR: set SCR = HTA.Script

dim HWND:HWND = HTA.FraHwnd

function hello()

    call SCR.alert("Hello World")

end function

SCR.Button1.onclick = GetRef("hello")

call HTA.Show(): call WIN32.WiteForWindowVisible(HWND)

call WIN32.MsgBox("正常終了")

set SCR   = nothing

set HTA   = nothing

set WIN32 = nothing

● Hello.vbsの解説

この解説は『JScriptでHelloWorld』をご覧になっていることを想定して書かれています。上記コードはJScriptの構文をVBScriptの構文にしただけですが、VBScriptでHTABOXコア用スクリプトを記述する場合の注意点が2つあります。

HelloWorldではIDでHTML側のエレメントを参照し、そのonclickエベントハンドらへ関数を設定していますが、もしHTMLエレメントがIDを持たず

   <input type="button" value="Button" onclick="hello()">

という書き方だった場合、HTML側のスクリプトへhelloという名前の関数を追加する必要があります。VBScriptには新たな名前を追加する機能がありませんから、低水準関数WIN32.AddItemを用意しています。引数は(追加先DispatchEx、追加名、追加するDispatch)です。

call WIN32.AddItem(SCR, "hello", GetRef("hello"))

VBScriptでは、setしたオブジェクトの開放を明示的に行う必要がありますが、その順序も重要となります。親子関係にある場合、子を開放して次に親を解放という順でないと正しく開放されません。HelloWorldの場合、set SCR = nothing と set HTA = nothing がこれにあたります。これを逆の順序にした場合、HTABOX.EXEは終了せずプロセスに残留します。この開放管理が面倒な場合は、WIN32.Quit()関数で無条件にHTABOXコアプロセスを停止させることも可能です。

 

お問い合わせ
©クロダ ソフトウェア サービス programmed by hidebou