ヨッシーの部屋

オートバイとパソコンの話題が中心

VBSでログオンスクリプトを再構築(その4)

2006-06-30 16:00:42 | Windows管理者の悩ましき日々
今回は処理中メッセージの表示を考える。

最も簡単な方法はWscript.EchoやMsgboxを使ってポップアップを表示する手法だが、OKボタンを消すことができない。
次に簡単な手法はHTMLを表示する手法だが、テキストの表示にJavaScriptも併用する必要があり、コードの複雑化が予想される。
クロスブラウザ化も大変そうだ。
他にメモ帳やOfficeソフトを起動してテキストを流し込む手法も考えたが制御が難しそうだ。
何か良い手は無い物かとネットを徘徊していると、吉岡照雄さん作の「RunWithMsg.VBS」というフリーウェアが参考になった。

http://www.vector.co.jp/soft/win95/util/se311204.html

なんでもWindows 2000以降のOSには「MS Agent」というおしゃべりソフトが仕込まれているそうな。
ディスクトップ上に様々なキャラクターが登場し、登場するキャラクターはそれぞれに愛嬌があってかわいいうえ、画面上を走り回ってみたり、ラッパを吹いてみたりとさまざまなしぐさをみせてくれるらしい。

そう、「Officeアシスタント」の「カイル君」みたいなものだ。
と言うよりも「Officeアシスタント」のエンジンそのものが「MS Agent」なのかもしれない。

これを使わない手はない。

さっそく試してみると意図も簡単に「マーリン」という魔術師が登場した。

01:'MS Agent オブジェクトを参照する
02:Set objAcon = WScript.CreateObject("Agent.Control")
03:
04:'MS Agent オブジェクトを使用できるようにする
05:objAcon.Connected = True
06:
07:'キャラクターをロードする
08:objAcon.Characters.Load "マーリン"
09:
10:'ロードしたキャラクターをオブジェクト化する
11:Set objAcar = objAcon.Characters("マーリン")
12:
13:'キャラクター登場
14:objAcar.Show
15:
16:'ふきだしを表示
17:objAcar.Speak("こんにちわ")
18:
19:'ふきだしを表示する時間
20:Wscript.Sleep 3000
21:
22:'ふきだしを表示
23:objAcar.Speak("さようなら")
24:
25:'ふきだしを表示する時間
26:Wscript.Sleep 3000
27:
28:'キャラクターが消える
29:objAcar.Hide
30:
31:'キャラクターをアンロードする
32:objAcon.Characters.Unload "マーリン"

上の例ではふきだしの表示(17行目と23行目)にSpeakメソッドを使っているが、他に雲調で表示するThinkメソッドもある。文法は一緒だ。
あとは20行目~23行目の間にスクリプトの本処理を記述するだけ。

またふきだしのスタイルやフォントを変えることもできる。
BalloonオブジェクトのStyleプロパティやFontNameプロパティをいじってやればよい。
以下に記述するコードをshowメソッド(14行目)の前にぶち込めば完璧。

objAcar.Balloon.Style = &H124000B
objAcar.Balloon.FontName = "Lucida Handwriting"
objAcar.Balloon.FontSize = 14

Styleプロパティの"&H124000B"の意味は詳しくは分からなかったが、"&H"はヘキサ(16進)、"124"は1行で1行あたり24バイト、"000"は不明、"B"はず~っと表示という意味があるようだ。
5行で1行あたり10バイトで表示したければ"&H510000B"とか"&H510000D"と指定すれば良い。


最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
更新してんだ~ (キャミ彦)
2006-06-30 21:02:29
バイクネタが少ないよ
だって (camiyossy)
2006-07-02 23:00:13
仕事だったり、天気悪かったりで全然走りに行けてないもん。