復(fù)制代碼 代碼如下:
'On Error Resume Next 
strAgentName = "Merlin" 
strAgentPath = "c:/windows/msagent/chars/" & strAgentName & ".acs" 
ScriptComplete=0 
Set objAgent = WScript.CreateObject("Agent.Control.2","agent_") 
objAgent.Connected = True 
objAgent.Characters.Load strAgentName, strAgentPath 
Set objCharacter = objAgent.Characters(strAgentName) 
objCharacter.LanguageID = &H409 
'objCharacter.LanguageID = &H804 '菜單為中文,但微軟沒有開發(fā)中文語音 
objCharacter.MoveTo 0, 700 
objCharacter.Show 
objCharacter.GestureAt 900, 700 
wsh.sleep 2000 
objCharacter.MoveTo 900, 700 
wsh.sleep 3000 
objCharacter.GestureAt 900, 100 
wsh.sleep 2000 
objCharacter.MoveTo 900, 100 
wsh.sleep 3000 
objCharacter.Speak("Good " & GetTimeOfDay()) 
objCharacter.Speak("I love you") 
objCharacter.speak("Hello, how are you?") 
objCharacter.speak("I will show for you!") 
wsh.sleep 10000 
'邊表演邊說明 
show "Acknowledge", "點頭" 
show "Alert", "伸直并抬起眉毛" 
show "Announce", "舉起喇叭并吹奏" 
show "Blink", "眨眼睛" 
show "Confused", "撓頭" 
show "Congratulate", "展示獎品" 
show "Congratulate_2", "鼓掌" 
show "Decline", "抬起手并搖頭" 
show "DoMagic1", "舉起魔法棍" 
show "DoMagic2", "放下魔法棍,出現(xiàn)云彩" 
show "DontRecognize", "捂住耳朵" 
show "Explain", "將兩臂向兩側(cè)展開" 
show "GestureDown", "向下的手勢" 
show "GestureLeft", "向左的手勢" 
show "GestureRight", "向右的手勢" 
show "GestureUp", "向上的手勢" 
show "GetAttention", "向前傾并敲擊" 
show "GetAttentionContinued", "向前傾并再次敲擊" 
show "GetAttentionReturn", "返回正常姿勢" 
ShowLoop "Hearing_1", "耳朵伸長(循環(huán)的動畫)" 
ShowLoop "Hearing_2", "頭向左傾(循環(huán)的動畫)" 
ShowLoop "Hearing_3", "頭向左轉(zhuǎn)(循環(huán)的動畫)" 
ShowLoop "Hearing_4", "頭向右轉(zhuǎn)(循環(huán)的動畫)" 
show "Hide", "消失在帽子下面" 
show "Idle1_1", "喘口氣" 
show "Idle1_2", "向左看并眨眼" 
show "Idle1_3", "向右看" 
show "Idle1_4", "從上往右看并眨眼" 
show "Idle2_1", "看看魔法棍并眨眼" 
show "Idle2_2", "手握手并眨眼" 
show "Idle3_1", "打呵欠" 
ShowLoop "Idle3_2", "入睡(循環(huán)的動畫)" 
show "LookDown", "向下看" 
show "LookDownBlink", "眨眼向下看" 
show "LookDownReturn", "返回正常姿勢" 
show "LookLeft", "向左看" 
show "LookLeftBlink", "眨眼向左看" 
show "LookLeftReturn", "返回正常姿勢" 
show "LookRight", "向右看" 
show "LookRightBlink", "眨眼向右看" 
show "LookRightReturn", "返回正常姿勢" 
show "LookUp", "向上看" 
show "LookUpBlink", "眨眼向上看" 
show "LookUpReturn", "返回正常姿勢" 
show "MoveDown", "向下飛行" 
show "MoveLeft", "向左飛行" 
show "MoveRight", "向右飛行" 
show "MoveUp", "向上飛行" 
show "Pleased", "微笑并把手合在一起" 
show "Process", "攪拌大鍋" 
ShowLoop "Processing", "攪拌大鍋(循環(huán)的動畫)" 
show "Read", "打開書,閱讀并查尋" 
show "ReadContinued", "閱讀并查尋" 
show "ReadReturn", "返回正常姿勢" 
ShowLoop "Reading", "閱讀(循環(huán)的動畫)" 
show "RestPose", "正常姿勢" 
show "Sad", "悲傷的表情" 
show "Search", "觀察水晶球" 
ShowLoop "Searching", "觀察水晶球(循環(huán)的動畫)" 
show "Show", "從帽子中出現(xiàn)" 
show "StartListening", "手靠向耳朵" 
show "StopListening", "手捂在耳朵上" 
show "Suggest", "顯示電燈泡" 
show "Surprised", "顯得很吃驚" 
show "Think", "用手托住下巴向上看" 
ShowLoop "Thinking", "用手托住下巴向上看(循環(huán)的動畫)" 
show "Uncertain", "向前傾并抬起眉毛" 
show "Wave", "擺手" 
show "Write", "打開書,書寫并查尋" 
show "WriteContinued", "書寫并查尋" 
show "WriteReturn", "返回正常姿勢" 
ShowLoop "Writing", "書寫(循環(huán)的動畫)" 
actions=Array("Acknowledge","Alert","Announce","Blink","Confused","Congratulate","Congratulate_2","Decline","DoMagic1","DoMagic2","DontRecognize","Explain","GestureDown","GestureLeft","GestureRight","GestureUp","GetAttention","GetAttentionContinued","GetAttentionReturn","Hide","Idle1_1","Idle1_2","Idle1_3","Idle1_4","Idle2_1","Idle2_2","Idle3_1","LookDown","LookDownBlink","LookDownReturn","LookLeft","LookLeftBlink","LookLeftReturn","LookRight","LookRightBlink","LookRightReturn","LookUp","LookUpBlink","LookUpReturn","MoveDown","MoveLeft","MoveRight","MoveUp","Pleased","Process","Read","ReadContinued","ReadReturn","RestPose","Sad","Search","Show","StartListening","StopListening","Suggest","Surprised","Think","Uncertain","Wave","Write","WriteContinued","WriteReturn") 
'順序表演 
for each action in actions 
Set objRequest = objCharacter.Play(action) 
Do While objRequest.Status > 0 
WScript.Sleep 100 
Loop 
next 
'隨機表演 
do 
Randomize 
i=Int((UBound(actions) + 1) * Rnd) 
action = actions(i) 
Set objRequest = objCharacter.Play(action) 
Do While objRequest.Status > 0 
WScript.Sleep 100 
Loop 
loop 
Do 
WScript.Sleep 1000 
Loop Until ScriptComplete 
Function GetTimeOfDay() 
h = Hour(Now) 
If h < 12 Then 
TimeOfDay = "Morning" 
ElseIf h < 18 Then 
TimeOfDay = "Afternoon" 
Else 
TimeOfDay = "Evening" 
End If 
GetTimeOfDay = TimeOfDay 
End Function 
Sub Show(action,prompt) 
objCharacter.Speak(action) 
wsh.sleep 300 
objCharacter.Think(prompt) 
wsh.sleep 200 
Set objRequest = objCharacter.Play(action) 
Do While objRequest.Status > 0 
WScript.Sleep 100 
Loop 
end sub 
Sub ShowLoop(action,prompt) 
objCharacter.Speak(action) 
objCharacter.Think(prompt) 
objCharacter.Play(action) 
wsh.sleep 5000 
objCharacter.stop 
end sub 
Sub agent_dblclick(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y) 
if MsgBox("確定要退出嗎?",33,"確認(rèn)退出")-2 then 
objCharacter.StopAll 
WScript.Quit 
end if 
End Sub 
Sub agent_DragStart(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y) 
objCharacter.Speak("Shit! Don't drag me!") 
wsh.sleep 5000 
End Sub
其實我們調(diào)用了系統(tǒng)里的MsAgent組件。Microsoft Agent是微軟公司發(fā)布的一項代理軟件開發(fā)技術(shù),我們知道,在Office幫助系統(tǒng)中有一種叫作Office助手的代理軟件,但其只允許Office各個組件調(diào)用。而Agent動畫人物可由任何Windows程序調(diào)用;Agent支持文字氣球和輸入提示條,在輸出語音的同時把文字輸出至一個卡通式文字氣球中。如果電腦系統(tǒng)中安裝有Agent語音識別引擎,用戶可以通過聲卡、麥克風(fēng)與MsAgent交談。 
介紹MsAgent的帖子早已有之,這里再次利用MsAgent,給出這個好玩的腳本,聊以活躍氣氛,吸引大家對vbs的興趣,希望大家積極發(fā)帖