IAgentCommand

[Microsoft 代理从 Windows 7 开始已弃用,可能在后续版本的 Windows 中不可用。]

Command 对象是 Commands 集合中的项。 服务器向用户提供对客户端应用程序变为活动输入的命令的访问权限。 若要检索 命令,请调用 IAgentCommands::GetCommand

IAgentCommand 定义了一个接口,允许应用程序设置和查询 命令 对象的属性,这些对象可以出现在角色的弹出菜单和语音命令窗口中。 这些函数也可从 IAgentCommandEx 获取Command 对象是 Commands 集合中的项。 当客户端应用程序进入活动状态时,服务器会向用户提供对命令的访问权限。

命令可能同时出现在角色的弹出菜单和语音命令窗口中。 若要在弹出菜单中显示,它必须具有 Caption 并将 Visible 属性设置为 True。 对于其 Commands 集合对象的 Visible 属性,还必须设置为 True,以便当客户端应用程序处于输入-活动状态时,命令才会显示在弹出菜单中。 若要在“语音命令”窗口中显示, 命令 必须设置其 VoiceCaptionVoice 属性。 (为了向后兼容,如果没有 VoiceCaption,则使用 Caption 设置。)

显示菜单时,角色的弹出菜单项不会更改。 如果在显示角色的弹出菜单时添加或删除命令或更改其属性,则菜单会在重新显示时显示这些更改。 但是,“语音命令”窗口在进行更改时会显示更改。

下表总结了命令的属性如何影响其表示形式。

Caption 属性 Voice-Caption 属性 Voice 属性 Visible 属性 显示在字符的弹出菜单中 显示在“语音命令”窗口中
True 是,使用 Caption 是,使用 VoiceCaption
否¹ True 是,使用 Caption
False 是,使用 VoiceCaption
否¹ False
否¹ True 是,使用 VoiceCaption
否¹ False 是,使用 VoiceCaption
否¹ 否¹ True
否¹ 否¹ False
否¹ True 是,使用 Caption 是,使用 Caption
否¹ 否¹ True
否¹ False 是,使用 Caption
否¹ 否¹ False
否¹ 否¹ True 否²
否¹ 否¹ False 否²
否¹ 否¹ 否¹ True
否¹ 否¹ 否¹ False

 

¹如果属性设置为 null。 在某些编程语言中,空字符串可能无法解释为与 null 字符串相同。

²命令仍可通过语音访问。

通常,如果使用“语音设置定义命令,则还会为其关联的 Commands 集合定义标题语音设置。 如果一组命令的 Commands 集合没有 “语音 ”或“ 字幕 ”设置,并且当前为输入活动状态,但 命令 具有 “标题 ”和“ 语音 ”设置,则当客户端应用程序变为输入活动状态时, 命令 将显示在“语音命令窗口”树视图中的“ (未定义的命令) ”。

当服务器收到与你为 Commands 集合定义的 Command 对象之一匹配的输入时,它会发送 IAgentNotifySink::Command 事件,并将命令的 ID 作为 IAgentUserInput 对象的属性传回。 然后,可以使用条件语句来匹配和处理命令。

按 Vtable 顺序使用的方法

IAgentCommand 方法 说明
SetCaption 设置 Command 对象的 Caption 的值。
GetCaption 返回 Command 对象的 Caption 属性的值。
SetVoice 设置 Command 对象的语音文本的值。
GetVoice 返回 Command 对象的 Voice 属性的值。
SetEnabled 设置 Command 对象的 Enabled 属性的值。
GetEnabled 返回 Command 对象的 Enabled 属性的值。
SetVisible 设置 Command 对象的 Visible 属性的值。
GetVisible 返回 Command 对象的 Visible 属性的值。
SetConfidenceThreshold 设置 Command 对象的 Confidence 属性的值。
GetConfidenceThreshold 返回 Command 对象的 Confidence 属性的值。
SetConfidenceText 设置 Command 对象的 ConfidenceText 属性的值。
getConfidenceText 返回 Command 对象的 ConfidenceText 属性的值。
getID 返回 Command 对象的 ID。