命令对象

[从 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 对象的属性传回。 然后,可以使用条件语句来匹配和处理 命令