中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [转]调用office助手→VBS版 上一主题 | 下一主题
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『楼 主』:  [转]调用office助手→VBS版

我是从来不装那些类似的助手的所以无法测试了。

转自:◎Vbs调用MsAgent

  Quote:
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 ]



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-6-3 11:29
查看资料  发送邮件  发短消息 网志   编辑帖子
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

想问一下baomaboy兄,
Agent等应用程序对象的方法如何得知的??

2007-6-3 11:39
查看资料  发短消息 网志   编辑帖子
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 3 楼』:  

我所知大部分源于网络。。。



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-6-3 11:52
查看资料  发送邮件  发短消息 网志   编辑帖子
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

genie.Play("Read")    '阅读
msgbox "哈哈"

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

脚本是按顺序执行,脚本把那些动作写好就给agent了……
(脚本执行的速度很快,告诉agent该怎样做。)
agent做的快慢已经和脚本没有关系了。。
但是脚本结束,agent那个就关闭了。。。。因为是你调用的……

2007-6-3 12:03
查看资料  发短消息 网志   编辑帖子
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

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

2007-6-3 12:07
查看资料  发短消息 网志   编辑帖子
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

这样应该更清楚了。

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 "关闭请点确定按钮。",,"退出"  '不用循环也可以,只要保证脚本不退出就可以。

'我完你也完,不要双击退出了

2007-6-3 12:11
查看资料  发短消息 网志   编辑帖子
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 7 楼』:  

脚本与agent异步执行,所以脚本要sleep等待agent



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-6-3 12:19
查看资料  发送邮件  发短消息 网志   编辑帖子
rockylee
新手上路





积分 3
发帖 3
注册 2006-12-28
状态 离线
『第 8 楼』:  

怎么在我的电脑上用不了啊

2008-12-24 20:29
查看资料  发送邮件  发短消息 网志   编辑帖子

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: