共用方式為


叫用控制項模式

描述實作 IInvokeProvider的指導方針和慣例,包括方法的相關資訊。 用控制項模式是用來支援在啟動時不會維護狀態,而是起始或執行單一明確動作的控制項。

維護狀態的控制項,例如核取方塊和選項按鈕,必須改為分別實作 IToggleProviderISelectionProvider 。 如需實作此控制項模式的控制項範例,請參閱 控制項類型及其支援的控制項模式

本主題包含下列各節。

實作方針和慣例

實作 用控制項模式時,請注意下列指導方針和慣例:

  • 如果相同的行為未透過另一個控制項模式提供者公開,控制項會實作 IInvokeProvider 。 例如,如果控制項上的 IUIAutomationInvokePattern::Invoke 方法執行與 IUIAutomationExpandCollapsePattern::ExpandCollapse 方法相同的動作,控制項不應該實作 IInvokeProvider

  • 通常按一下、按兩下或按 ENTER、使用預先定義的鍵盤快速鍵,或其他按鈕組合,就可以叫用控制項。

  • Invoked事件 (UIA_Invoke_InvokedEventId) 事件會在已啟動 (控制項上引發,以回應執行其相關聯動作的控制項) 。 在可能的情況下,應該是在控制項完成該動作並返回,且沒有發生封鎖時才會引發該事件。 在下列案例中維護Invoke要求之前,應該先引發用事件 (UIA_Invoke_InvokedEventId) :

    • 無法或不適合等待至動作完成。
    • 動作需要使用者互動。
    • 動作費時,且會導致發出呼叫的用戶端長時間凍結。
  • 如果叫用控制項有顯著的副作用,應該透過 HelpText 屬性公開這些副作用。 例如,即使 IUIAutomationInvokePattern::Invoke 並未與選取專案相關聯, Invoke 可能會導致另一個控制項被選取。

  • 暫留 (或滑鼠停留) 效果通常不會構成 用事件。 不過,執行動作的控制項 (,而不是根據暫留狀態造成視覺效果) 應該支援 用控制項模式。

    注意

    如果控制項的叫用是與滑鼠相關的副作用所造成的,便會將這個實作視為協助工具問題。

  • 叫用控制項和選擇項目不同。 但是,依據控制項而定,叫用某些控制項可能會有造成此項目受到選取的副作用。 例如,叫用 [我的文件] 資料夾中的 Microsoft Word 文件清單項目時,便會選取該項目並開啟文件。

  • 專案可以在叫用時立即從 Microsoft 消費者介面自動化 樹狀結構消失。 要求事件回呼所提供的項目資訊,可能會因此而失敗。 建議的解決方法是預先擷取快取的資訊。

  • 控制項可以實作多個控制項模式。 例如,Microsoft Excel 工具列上的 填滿色彩 控制項會實作 Invoke 和 ExpandCollapse 控制項模式。 ExpandCollapse 控制項模式會公開功能表,而 [叫 用] 控制項模式會以所選色彩填滿使用中的選取範圍。

IInvokeProvider的必要成員

實作 IInvokeProvider 介面需要下列方法。

必要成員 成員類型 備註
調用 方法 Invoke 是非同步呼叫,必須立即傳回,而不會封鎖。
對於叫用時直接或間接啟動強制回應對話方塊的控制項,此行為尤其重要。 任何引發事件的使用者介面自動化用戶端都會維持封鎖的狀態,直到強制回應對話方塊關閉為止。

此控制項模式沒有任何相關聯的屬性或事件。

控制項類型及其支援的控制項模式

UI 自動化控制項模式概觀

UI 自動化樹狀目錄概觀

UIA_Invoke_InvokedEventId