命令对象
[从 Windows 7 开始弃用 Microsoft 代理,在后续版本的 Windows 中可能不可用。
Command 对象是 Commands 集合中的项。 当客户端应用程序变为输入活动状态时,服务器会向用户提供对 Command 对象的访问。
若要访问 Command 对象的属性, 请使用 Command 属性 在其集合中引用它。 在 VBScript 和 Visual Basic中,可以直接使用 Name 属性:
<i>agent</i>.Characters("<i>CharacterID</i>").Commands("<i>Name</i>").<i>property</i> [= <i>value</i>]
对于不支持集合的编程语言,请使用 Command 方法:
<i>agent</i>.Characters("<i>CharacterID</i>").Commands.Command("<i>Name</i>").<i>property</i> [= <i>value</i>]
还可以通过创建对命令对象的引用来引用它。 在Visual Basic中,声明对象变量并使用 Set 语句创建引用:
Dim Cmd1 as Object
...
Set Cmd1 = Agent.Characters("MyCharacterID").Commands("SampleCommand")
...
Cmd1.Enabled = True
在 Visual Basic 5.0 中,还可以将对象声明为 IAgentCtlCommandEx 类型并创建引用。 此约定可实现早期绑定,从而获得更好的性能:
Dim Cmd1 as IAgentCtlCommandEx
...
Set Cmd1 = Agent.Characters("MyCharacterID").Commands("SampleCommand")
...
Cmd1.Enabled = True
在 VBScript 中,可以将引用声明为特定类型,但仍可以声明变量并将其设置为集合中的 Command :
Dim Cmd1
...
Set Cmd1 = Agent.Characters("MyCharacterID").Commands("SampleCommand")
...
Cmd1.Enabled = True
命令可能出现在字符的弹出菜单和命令窗口中,或者同时出现在两者中。 若要显示在弹出菜单中,它必须具有标题,并将 “可见 ”属性设置为 True。 此外,其 Commands 集合对象 Visible 属性还必须设置为 True。 若要显示在“命令”窗口中, 命令 必须设置其 “标题 ”和 “语音 ”属性。 请注意,菜单显示时,字符的弹出菜单条目不会更改。 如果在显示字符的弹出菜单时添加或删除命令或更改其属性,则每当用户下次显示这些更改时,菜单将显示这些更改。 但是,命令窗口动态反映所做的任何更改。
下表总结了 命令 的属性如何影响其演示文稿:
Caption 属性
Voice-Caption属性
Voice 属性
Visible 属性
Enabled 属性
显示在字符的弹出菜单中
显示在“命令”窗口中
是
是
是
True
True
普通,使用 题注
是,使用 VoiceCaption
是
是
是
True
False
已禁用,使用 Caption
否
是
是
是
False
True
不显示
是,使用 VoiceCaption
是
是
是
False
False
不显示
否
是
是
否
True
True
普通,使用 题注
否
是
是
否
True
False
已禁用,使用 Caption
否
是
是
否
False
True
不显示
否
是
是
否
False
False
不显示
否
否
是
是
True
True
不显示
是,使用 VoiceCaption
否
是
是
True
False
不显示
否
否
是
是
False
True
不显示
是,使用 VoiceCaption
否
是
是
False
False
不显示
否
否
是
否
True
True
不显示
否
否
是
否
True
False
不显示
否
否
是
否
False
True
不显示
否
否
是
否
False
False
不显示
否
是
否
是
True
True
普通,使用 Caption
是,使用 Caption
是
否
是
True
False
已禁用,使用 Caption
否
是
否
是
False
True
不显示
是,使用 Caption
是
否
是
False
False
不显示
否
是
否
否
True
True
普通,使用 Caption
否
是
否
否
True
False
已禁用,使用 Caption
否
是
否
否
False
True
不显示
否
是
否
否
False
False
不显示
否
否
否
是
True
True
不显示
否
否
否
是
True
False
不显示
否
否
否
是
False
True
不显示
否
否
否
是
False
False
不显示
否
否
否
否
True
True
不显示
否
否
否
否
True
False
不显示
否
否
否
否
False
True
不显示
否
否
否
否
False
False
不显示
否
如果属性设置为 null。 在某些编程语言中,空字符串可能不解释为空字符串。 该命令仍可访问语音。
当服务器收到某个命令的输入时,它会发送 一个 Command 事件,并将 Command 的名称作为 UserInput 对象的属性传回。 然后,可以使用条件语句来匹配和处理 命令。