中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 01:46
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [转]调用office助手→VBS版
可打印版本  1,116 / 7
第1楼 baomaboy 发表于 2007-06-03 11:29
银牌会员 发帖 554 积分 1,513
[转]调用office助手→VBS版
我是从来不装那些类似的助手的所以无法测试了。

转自:◎Vbs调用MsAgent


GenieID = "Genie"
GenieACS = "genie.acs"
ScriptComplete = 0

Set AgentControl = WScript.CreateObject("Agent.Control.2","agent_")
AgentControl.Connected = True'连接控件
AgentControl.Characters.Load GenieID,GenieACS
Set Genie = AgentControl.Characters(GenieID)
Genie.LanguageID = &H409
Genie.MoveTo 900, 600
Genie.Show
Genie.MoveTo 900, 0
timespeak = "good " & GetTimeOfDay()
Genie.Speak(timespeak)
Genie.Play "Acknowledge" '承认
Genie.Speak("眨眼")
Genie.Play "Blink" '眨眼
Genie.Speak("i love you")
Genie.Speak("回复动作")
genie.Play("RestPose") '回復动作
Genie.Speak("向上")
genie.Play("GestureUp") '向上
Genie.Speak("向下")
genie.Play("GestureDown") '向下
Genie.Speak("伸出左手")
genie.Play("GestureLeft") ' 伸出左手
Genie.Speak("伸出右手")
genie.Play("GestureRight") ' 伸出右手
Genie.Speak("叹气")
genie.Play("Sad") '嘆气
Genie.Speak("惊奇")
genie.Play("Surprised") '惊奇
Genie.Speak("握掌")
genie.Play("Pleased") '握掌
Genie.Speak("喇叭")
genie.Play("Announce") '喇叭
Genie.Speak("眯眼")
genie.Play("Blink") '瞇眼
Genie.Speak("无奈")
genie.Play("Decline") '无奈
Genie.Speak("抓头")
genie.Play("Confused") '抓头
Genie.Speak("鼓掌")
genie.Play("Congratulate") '奖盃
Genie.Speak("回手")
genie.Play("Wave") '挥手
Genie.Speak("惊讶")
genie.Play("Alert") '惊讶
Genie.Speak("魔术棒1")
genie.Play("DoMagic1") '魔术棒-1
Genie.Speak("魔术棒2")
genie.Play("DoMagic2") '魔术棒-2
Genie.Speak("摊手")
genie.Play("Explain") '摊手
Genie.Speak("敲门")
genie.Play("GetAttention") '敲门
genie.Play("GetAttentionContinued") '敲门-敲
genie.Play("GetAttentionReturn") '敲门-放下
genie.Play("Greet") '弯腰
genie.Play("Idle2_1") '观察魔术棒
genie.Play("Idle2_2") '两手在腹前交叉
genie.Play("Idle3_1") '打呵欠
Genie.Speak("向上看")
genie.Play("LookUp") '上看
genie.Play("LookDown") '下看
genie.Play("LookLeft") '左看
genie.Play("LookRight") '右看
genie.Play("MoveUp") '上移
genie.Play("MoveDown") '下移
genie.Play("MoveLeft") '左移
genie.Play("MoveRight") '右移
genie.Play("Process") '魔法调配
genie.Play("Read") '阅读

Do '此处存疑,高手请看最后
WScript.Sleep 1000
Loop Until ScriptComplete

Function GetTimeOfDay()
Dim TimeOfDay
Dim h

h = Hour(Now())

If h < 12 Then
TimeOfDay = "Morning"
ElseIf h < 17 Then
TimeOfDay = "Afternoon"
Else
TimeOfDay = "Evening"
End If

GetTimeOfDay = TimeOfDay
End Function

Sub agent_dblclick(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y)
Genie.StopAll
MsgBox "白白,再见了!"
WScript.Quit
End Sub


[ Last edited by baomaboy on 2007-6-3 at 11:32 AM ]
第2楼 wudixin96 发表于 2007-06-03 11:39
银牌会员 发帖 931 积分 1,928
想问一下baomaboy兄,
Agent等应用程序对象的方法如何得知的??
第3楼 baomaboy 发表于 2007-06-03 11:52
银牌会员 发帖 554 积分 1,513
我所知大部分源于网络。。。
第4楼 slore 发表于 2007-06-03 12:03
铂金会员 发帖 2,478 积分 5,212
genie.Play("Read") '阅读
msgbox "哈哈"

改成这样你就知道了,那个sleep的用途。
你会发现msgbox "哈哈"并不是等阅读完才出现的。

脚本是按顺序执行,脚本把那些动作写好就给agent了……
(脚本执行的速度很快,告诉agent该怎样做。)
agent做的快慢已经和脚本没有关系了。。
但是脚本结束,agent那个就关闭了。。。。因为是你调用的……
第5楼 slore 发表于 2007-06-03 12:07
铂金会员 发帖 2,478 积分 5,212
GenieID = "Merlin" '没有那个对象~换马琳上来
GenieACS = "Merlin.acs"

Set AgentControl = WScript.CreateObject("Agent.Control.2","agent_")
AgentControl.Connected = True'连接控件
AgentControl.Characters.Load GenieID,GenieACS
Set Genie = AgentControl.Characters(GenieID)
Genie.LanguageID = &H409
Genie.MoveTo 900, 600
Genie.Show
Genie.MoveTo 900, 0
timespeak = "good " & GetTimeOfDay()
'……太长了我缩下
Genie.Speak(timespeak)
Genie.Play "Acknowledge" '承认

genie.Play("Process") '魔法调配
genie.Play("Read") '阅读

MsgBox "关闭请点确定按钮。",,"退出" '不用循环也可以,只要保证脚本不退出就可以。


Function GetTimeOfDay()
Dim TimeOfDay
Dim h

h = Hour(Now())

If h < 12 Then
TimeOfDay = "Morning"
ElseIf h < 17 Then
TimeOfDay = "Afternoon"
Else
TimeOfDay = "Evening"
End If

GetTimeOfDay = TimeOfDay
End Function

Sub agent_dblclick(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y)
Genie.StopAll
MsgBox "白白,再见了!"
WScript.Quit
End Sub
第6楼 slore 发表于 2007-06-03 12:11
铂金会员 发帖 2,478 积分 5,212
这样应该更清楚了。

GenieID = "Merlin" '没有那个对象~换马琳上来
GenieACS = "Merlin.acs"

Set AgentControl = WScript.CreateObject("Agent.Control.2","agent_")
AgentControl.Connected = True'连接控件
AgentControl.Characters.Load GenieID,GenieACS
Set Genie = AgentControl.Characters(GenieID)
Genie.LanguageID = &H409
Genie.MoveTo 900, 600
Genie.Show
Genie.MoveTo 900, 0
timespeak = "good 说短点不要函数了=.="
'……太长了我缩下
Genie.Speak(timespeak)
Genie.Play "Acknowledge" '承认

genie.Play("Process") '魔法调配
MsgBox "阅读。",,"'阅读"
genie.Play("Read") '阅读

MsgBox "关闭请点确定按钮。",,"退出" '不用循环也可以,只要保证脚本不退出就可以。

'我完你也完,不要双击退出了
第7楼 baomaboy 发表于 2007-06-03 12:19
银牌会员 发帖 554 积分 1,513
脚本与agent异步执行,所以脚本要sleep等待agent
第8楼 rockylee 发表于 2008-12-24 20:29
新手上路 发帖 3 积分 3
怎么在我的电脑上用不了啊
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023