SHOJI's Code
 仕事や趣味で書いた各種言語のプログラミングコード(エクセルVBA,PHP,C/C++/C#,JavaScript等)、その他雑記。
2017.08<<123456789101112131415161718192021222324252627282930>>2017.10
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

前回の書込みから2ヶ月経っている・・・(^^;

最近、ちょっと仕事も落ち着き、COMなどプログラミングしてみた。
で、検証用にWSHを使ってみたのだが、最初どうやってイベントハンドラを定義してよいかわからなかった。どうやら以下のようなコードでイベントを受理できるらしい。
var objTest = WScript.CreateObject("testcom.counter", "objTest_");

if( objTest )
{
msg( "CreateObject() succeeded." );

msg( "Default value is "+objTest.value );

objTest.inc();
objTest.dec();

for(var i=0;i<10;i++)
WScript.Sleep(1000);
}
else
msg( "CreatetObject() failed." );



function objTest_onchange(c)
{
msg( "(EVENT)Value changed. New value is "+this.value );
}

function msg(txt)
{
WScript.Echo( txt );
}


testcom.counterというProgIDのCOMを作ってテストしたときのWSHである。CreateObjectの第2引数でイベント受理用の関数のプリフィクスを指定する。上のCOMは値が変化したときにonchangeというイベントが発生するのだが、上のようなコードを書くとそのイベントが発生したとき、objTest_onchange関数がコールされる。
ただ残念なのは、この方法が使えるのがWSHのみで、html上のJavaScriptでは使えないということだ。
コメント
この記事へのコメント
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2006 SHOJI, Powered By FC2ブログ all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。