共用方式為


IAccessible::get_accKeyboardShortcut 方法 (oleacc.h)

IAccessible::get_accKeyboardShortcut 方法會擷取指定物件的快捷鍵或訪問鍵,也稱為助記鍵。 具有快捷鍵或訪問鍵的所有物件都支援這個屬性。

語法

HRESULT get_accKeyboardShortcut(
  [in]          VARIANT varChild,
  [out, retval] BSTR    *pszKeyboardShortcut
);

參數

[in] varChild

類型: VARIANT

指定擷取的鍵盤快捷方式是否屬於物件或其中一個物件的子專案。 此參數CHILDID_SELF (取得对象) 的相關信息或子標識碼 (,以取得對象子元素的相關信息) 。 如需初始化 VARIANT 的詳細資訊,請參閱 如何在參數中使用子標識碼

[out, retval] pszKeyboardShortcut

類型: BSTR*

BSTR 的位址,該字串接收可識別鍵盤快捷方式的當地語系化字串,如果沒有與指定的物件建立關聯,則為 NULL

傳回值

類型: HRESULT

如果成功,則傳回 S_OK。

如果未成功,則會傳回下表中的其中一個值,或另一個標準 COM 錯誤碼。 伺服器會傳回這些值,但客戶端必須一律檢查輸出參數,以確保它們包含有效的值。 如需詳細資訊,請參閱 檢查 IAccessible 傳回值

錯誤 Description
S_FALSE
對象沒有相關聯的鍵盤快捷方式。
E_INVALIDARG
引數無效。
DISP_E_MEMBERNOTFOUND
物件不支援這個屬性。

備註

訪問鍵是功能表、功能表項或按鈕或其他控制件之標籤文字中的加底線字元。 例如,使用者可以按下 ALT 鍵來顯示功能表,同時按下指定的加底線按鍵,例如 ALT+F 來開啟 File 功能表。 若要使用功能表項的存取鍵,包含專案的功能表必須是使用中。

工具列按鈕和功能表項等控制項通常具有相關聯的快速鍵,也稱為鍵盤快捷鍵。 某些功能表項可能同時具有訪問鍵和快速鍵,而有些功能表項可能只有一個。 例如,名為 New 的功能表項具有訪問鍵 N 和快捷鍵 CTRL+N。 功能表不需要作用中,快捷鍵才能運作。

請記下客戶端開發人員:

如果此屬性傳回單一字元,則您無法假設它是訪問鍵或鍵盤快捷方式。 使用標準功能表項時,存取鍵會由 IAccessible::get_accKeyboardShortcut 傳回,而快捷鍵會當做 從IAccessible::get_accName傳回的功能表項名稱的一部分傳回。 一般而言,訪問鍵通常會定義為 ALT + <字母>,而鍵盤快捷方式通常為 CTRL + <字母>。

請記下伺服器開發人員: 如果UI元素可以接收鍵盤焦點,則您應該公開專案的存取鍵。 如果UI元素無法接收鍵盤焦點 (,例如工具列圖示) ,則您應該顯示快捷鍵。

因為快捷鍵通常是由應用程式決定,而不是由控件本身決定,所以伺服器通常可以傳回從視窗的標準可存取物件取得的值。

用戶端範例

下列範例函式會擷取指定可存取對象的鍵盤快捷方式或其子系之一,並將它列印至控制台。

HRESULT PrintShortcut(IAccessible* pAcc, long child)
{
    if (pAcc == NULL)
    {
        return E_INVALIDARG;
    }
    BSTR bstrShortcut;
    VARIANT varObj;
    varObj.vt = VT_I4;
    varObj.lVal = child;
    HRESULT hr = pAcc->get_accKeyboardShortcut(varObj, &bstrShortcut);
    if (hr == S_OK)
    {
        printf("Shortcut: %S\n", bstrShortcut);
        SysFreeString(bstrShortcut);
    }
    return hr;
}

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 oleacc.h
程式庫 Oleacc.lib
Dll Oleacc.dll
可轉散發套件 sp6 和更新版本和 Windows 95 Windows NT 4.0 上的 Active Accessibility 1.3 RDK

另請參閱

IAccessible

IAccessible::get_accName

KeyboardShortcut 屬性

變異