共用方式為


IAgentCommands

[Microsoft代理程式從 Windows 7 開始已被取代,而且可能無法在後續版本的 Windows 中使用。]

Microsoft Agent 伺服器會維護使用者目前可用的命令清單。 此清單包含伺服器為一般互動定義的命令,例如隱藏和Microsoft Agent 屬性、可用用戶端清單(但非輸入-主動)客戶端的清單,以及目前使用中用戶端所定義的命令。 前兩組命令是全域命令;也就是說,無論輸入主動客戶端為何,隨時都可以使用它們。 用戶端定義的命令只有在該客戶端為輸入作用中時才能使用。

藉由查詢 IAgentCommands IAgentCharacter介面,擷取 IAgentCommands 介面。 每個Microsoft Agent 用戶端應用程式都可以定義稱為 Commands 集合的命令集合。 若要將 Command 新增至集合,請使用 AddInsert 方法。 雖然您可以使用 IAgentCommand 方法來指定 Command 的 屬性, 為了獲得最佳程式碼效能,請在初始設定新 Command屬性時,指定 IAgentCommands::AddIAgentCommands::Insert 方法的所有属性。 您可以使用 IAgentCommand 方法來查詢或變更屬性設定。

針對 Commands 集合中每個 命令,您可以判斷命令是否出現在字元的彈出視窗、語音命令視窗、兩者或兩者都沒有。 例如,如果您想要命令出現在字元的快捷功能表上,請設定命令的 Caption,並 Visible 屬性。 若要在 Voice Commands Window中顯示命令,請設定命令的 CaptionVoice 屬性。

使用者只能在用戶端應用程式為輸入作用中且字元可見時,才能存取 Commands 集合中的個別命令。 因此,您通常會想要設定 CaptionVoiceCaption,以及 Voice 属性,Commands 集合物件以及集合中的命令,因為這會將您 Commands 集合的專案放在字元的彈出視窗和語音命令視窗中。 當使用者選擇其 Commands 專案來切換至用戶端時,伺服器會自動讓您的用戶端輸入使用中,使用 IAgentNotifySink::ActivateInputState,並在其集合中 命令。 伺服器也會通知用戶端不再使用 IAgentNotifySink::ActivateInputState 事件。 這可讓伺服器只呈現並接受套用至目前輸入作用中用戶端內容的 命令。 它也有助於避免客戶端之間 命令-name 衝突。

用戶端也可以明確要求使用 IAgentCharacter::Activate方法輸入-主動用戶端。 此方法也支援將應用程式設定為不是輸入-主動用戶端。 在與另一個應用程式共用字元時,您可能會想要使用此方法,在應用程式視窗取得焦點時,將應用程式設定為輸入-主動,而不會在失去焦點時輸入主動。

同樣地,您可以使用 IAgentCharacter::Activate,將應用程式設定為字元的使用中用戶端。 使用中用戶端是當其字元為最上層字元時,接收輸入的用戶端。 當此狀態變更時,伺服器會向應用程式通知應用程式 IAgentNotifySinkEx::ActiveClientChange 事件。

當顯示字元的快捷功能表時,變更 Commands 集合的屬性,或在其集合中的命令不會顯示,直到使用者重新顯示功能表為止。 不過,開啟時,語音命令視窗會在發生變更時顯示變更。

IAgentCommands 會定義介面,讓應用程式能夠新增、移除、設定及查詢 命令 集合的屬性。 這些函式也可從 IAgentCommandsEx取得。

命令 集合可以同時以命令的形式出現在快捷功能表和字元的 [語音命令視窗] 中。 若要讓 命令 集合出現,您必須設定其 Caption 屬性。 下表摘要說明 Commands 集合的屬性如何影響其呈現方式。

Caption 屬性 Voice-Caption 屬性 Voice 屬性 Visible 屬性 出現在字元的快捷功能表中 出現在語音命令視窗中
是的 是的 是的 是,使用 Caption 是,使用 VoiceCaption
是的 是的 否 2012 是,使用 Caption
是的 是的 是的 是,使用 VoiceCaption
是的 是的 否 2012
否 2012 是的 是的 是,使用 VoiceCaption
否 2012 是的 是的 是,使用 VoiceCaption
否 2012 是的 否 2012
否 2012 是的 否 2012
是的 否 2012 是的 是,使用 Caption 是,使用 Caption
是的 否 2012 否 2012 是的
是的 否 2012 是的 是,使用 Caption
是的 否 2012 否 2012
否 2012 否 2012 是的 否 2012
否 2012 否 2012 是的 否 2012
否 2012 否 2012 否 2012
否 2012 否 2012 否 2012

 

2 如果屬性設定為 null。 在某些程式設計語言中,空字串可能無法解譯為與 Null 字串相同。

超音命令仍可供語音存取。

以 Vtable 順序 方法

IAgentCommands 方法 描述
GetCommand Commands 集合擷取 Command 物件。
GetCount 傳回 Commands 集合中 Commands 數目的值。
SetCaption 設定 Commands 集合 Caption 屬性的值。
GetCaption 傳回 Commands 集合的 Caption 屬性值。
SetVoice 設定 Commands 集合的 Voice 屬性值。
GetVoice 傳回 Commands 集合的 Voice 屬性值。
SetVisible 設定 Commands 集合的 Visible 屬性值。
GetVisible 傳回 Commands 集合的 Visible 屬性值。
新增 Command 物件新增至 Commands 集合。
插入 Commands 集合中插入 Command 物件。
移除 拿掉 Commands 集合中的 Command 物件。
RemoveAll Commands 集合中移除所有 Command 物件。