Board logo

标题: [转]调用office助手→VBS版 [打印本页]

作者: baomaboy     时间: 2007-6-3 11:29    标题: [转]调用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 ]
作者: wudixin96     时间: 2007-6-3 11:39
想问一下baomaboy兄,
Agent等应用程序对象的方法如何得知的??
作者: baomaboy     时间: 2007-6-3 11:52
我所知大部分源于网络。。。
作者: slore     时间: 2007-6-3 12:03
genie.Play("Read")    '阅读
msgbox "哈哈"

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

脚本是按顺序执行,脚本把那些动作写好就给agent了……
(脚本执行的速度很快,告诉agent该怎样做。)
agent做的快慢已经和脚本没有关系了。。
但是脚本结束,agent那个就关闭了。。。。因为是你调用的……
作者: slore     时间: 2007-6-3 12:07
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
作者: slore     时间: 2007-6-3 12:11
这样应该更清楚了。

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

'我完你也完,不要双击退出了
作者: baomaboy     时间: 2007-6-3 12:19
脚本与agent异步执行,所以脚本要sleep等待agent
作者: rockylee     时间: 2008-12-24 20:29
怎么在我的电脑上用不了啊