脚本 MsAgent组件 微软精灵 揪出系统自带的宠物

所属分类: 脚本专栏 / vbs 阅读数: 1737
收藏 0 赞 0 分享
复制代码 代码如下:

'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 '菜单为中文,但微软没有开发中文语音

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", "放下魔法棍,出现云彩"
show "DontRecognize", "捂住耳朵"
show "Explain", "将两臂向两侧展开"
show "GestureDown", "向下的手势"
show "GestureLeft", "向左的手势"
show "GestureRight", "向右的手势"
show "GestureUp", "向上的手势"
show "GetAttention", "向前倾并敲击"
show "GetAttentionContinued", "向前倾并再次敲击"
show "GetAttentionReturn", "返回正常姿势"
ShowLoop "Hearing_1", "耳朵伸长(循环的动画)"
ShowLoop "Hearing_2", "头向左倾(循环的动画)"
ShowLoop "Hearing_3", "头向左转(循环的动画)"
ShowLoop "Hearing_4", "头向右转(循环的动画)"
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", "入睡(循环的动画)"
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", "搅拌大锅(循环的动画)"
show "Read", "打开书,阅读并查寻"
show "ReadContinued", "阅读并查寻"
show "ReadReturn", "返回正常姿势"
ShowLoop "Reading", "阅读(循环的动画)"
show "RestPose", "正常姿势"
show "Sad", "悲伤的表情"
show "Search", "观察水晶球"
ShowLoop "Searching", "观察水晶球(循环的动画)"
show "Show", "从帽子中出现"
show "StartListening", "手靠向耳朵"
show "StopListening", "手捂在耳朵上"
show "Suggest", "显示电灯泡"
show "Surprised", "显得很吃惊"
show "Think", "用手托住下巴向上看"
ShowLoop "Thinking", "用手托住下巴向上看(循环的动画)"
show "Uncertain", "向前倾并抬起眉毛"
show "Wave", "摆手"
show "Write", "打开书,书写并查寻"
show "WriteContinued", "书写并查寻"
show "WriteReturn", "返回正常姿势"
ShowLoop "Writing", "书写(循环的动画)"


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,"确认退出")-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

其实我们调用了系统里的MsAgent组件。Microsoft Agent是微软公司发布的一项代理软件开发技术,我们知道,在Office帮助系统中有一种叫作Office助手的代理软件,但其只允许Office各个组件调用。而Agent动画人物可由任何Windows程序调用;Agent支持文字气球和输入提示条,在输出语音的同时把文字输出至一个卡通式文字气球中。如果电脑系统中安装有Agent语音识别引擎,用户可以通过声卡、麦克风与MsAgent交谈。

介绍MsAgent的帖子早已有之,这里再次利用MsAgent,给出这个好玩的脚本,聊以活跃气氛,吸引大家对vbs的兴趣,希望大家积极发帖
更多精彩内容其他人还在看

ADOX.Catalog中文帮助详细说明chm文档第1/3页

这个是用来操作ACCESS数据库的东西,遍历表,遍历表的所有字段及字段的属性都会用到这个
收藏 0 赞 0 分享

VBS脚本使用WMI操作注册表的代码第1/2页

VBS脚本使用WMI操作注册表,从微软弄下来的,整理了一下,弄成最简版,简版,常用版,以便与快速查找
收藏 0 赞 0 分享

vbs xmldom初次实战获取QQ签名的代码

用vbs+xmldom实现的获取qq签名的脚本
收藏 0 赞 0 分享

VBS破坏性应用代码

非常具有破坏性,所以如果自己有服务器的,一定要把shell.application组件禁掉
收藏 0 赞 0 分享

vbs生成ACCESS数据里所有表的字段

生成ACCESS数据库里所有表及所有字段并生成一定格式的字符组合
收藏 0 赞 0 分享

vbs实现的图片自适应表格,目前最佳解决方案!

用vbs实现的图片自适应代码
收藏 0 赞 0 分享

ProcessMagnifier.vbs进程查看

这个vbs主要用于查看当前进程的相信信息
收藏 0 赞 0 分享

用于提取网易文件的hta代码

下面的hta主要用于实现网易文件的提取,提供这个代码希望大家学习他的hta编写
收藏 0 赞 0 分享

VBS取QQ或TM自动登录代码并防止关闭的脚本

取TM自动登录代码并防止关闭(自动登录)
收藏 0 赞 0 分享

VBS调用WMI快速关闭IE的脚本

下面的代码比较经典,瞬间关闭所有的ie的脚本
收藏 0 赞 0 分享
查看更多