ActivateKeyboardLayout 函式 (winuser.h)

設定輸入地區設定識別碼 (先前稱為呼叫執行緒或目前進程的鍵盤配置控制碼) 。 輸入地區設定識別碼會指定地區設定,以及鍵盤的實體配置。

語法

HKL ActivateKeyboardLayout(
  [in] HKL  hkl,
  [in] UINT Flags
);

參數

[in] hkl

類型: HKL

要啟動的輸入地區設定識別碼。

輸入地區設定識別碼必須已由先前對 LoadKeyboardLayout 函式的呼叫載入。 此參數必須是鍵盤配置或下列其中一個值的控制碼。

意義
HKL_NEXT
1
在系統維護的已載入地區設定識別碼迴圈清單中,選取下一個地區設定識別碼。
HKL_PREV
0
在系統所維護的已載入地區設定識別碼迴圈清單中,選取先前的地區設定識別碼。

[in] Flags

類型: UINT

指定如何啟動輸入地區設定識別碼。 此參數可以是下列其中一個值。

意義
KLF_REORDER
0x00000008
如果設定此位,系統會將地區設定識別碼移至清單的前端,以重新排序系統載入的地區設定識別碼迴圈清單。 如果未設定此位,清單會輪替,而不會變更順序。

例如,如果使用者使用英文地區設定識別碼,以及以該順序載入 (法文、德文和西班牙文地區設定識別碼) ,則啟用 KLF_REORDER 位集的德文地區設定識別碼會產生下列順序:德文、英文、法文、西班牙文。 啟用沒有KLF_REORDER位集的德文地區 設定 識別碼會產生下列順序:德文、西班牙文、英文、法文。

如果載入少於三個地區設定識別碼,則此旗標的值無關。

KLF_RESET
0x40000000
如果設定但 未設定KLF_SHIFTLOCK ,則會再次按下 CAPS LOCK 鍵來關閉 CAPS LOCK 狀態。 如果同時設定和 KLF_SHIFTLOCK ,按下任一 SHIFT 鍵會關閉 CAPS LOCK 狀態。

這兩種方法互斥,而且設定會保存為登錄中使用者設定檔的一部分。

KLF_SETFORPROCESS
0x00000100
啟動整個進程的指定地區設定識別碼,並將 WM_INPUTLANGCHANGE 訊息傳送至目前線程的焦點或使用中視窗。
KLF_SHIFTLOCK
0x00010000
這會與 KLF_RESET搭配使用。 如需說明 ,請參閱KLF_RESET
KLF_UNLOADPREVIOUS
不支援此旗標。 請改用 UnloadKeyboardLayout 函式。

傳回值

類型: HKL

傳回值的類型為 HKL。 如果函式成功,傳回值就是先前的輸入地區設定識別碼。 否則為零。

若要取得擴充的錯誤資訊,請使用 GetLastError 函 式。

備註

此函式只會影響目前進程或執行緒的配置。

此函式不限於鍵盤配置。 hkl參數實際上是輸入地區設定識別碼。 這是比鍵盤版面配置更廣泛的概念,因為它也可以包含語音轉換文字轉換器、輸入法編輯器 (輸入法) 或任何其他形式的輸入。 您可以隨時載入數個輸入地區設定識別碼,但一次只能載入一個。 載入多個輸入地區設定識別碼可讓您快速切換它們。

當每個地區設定允許多個 IME 時,傳遞輸入地區設定識別碼,其中高字 (裝置控制碼) 為零會啟動屬於地區設定清單中的第一個 IME。

KLF_RESETKLF_SHIFTLOCK旗標會改變關閉 CAPS LOCK 狀態的方法。 根據預設,CAPS LOCK 狀態會再次按下 CAPS LOCK 鍵來關閉。 如果只設定 KLF_RESET ,則會重新建立預設狀態。 如果 已設定KLF_RESETKLF_SHIFTLOCK ,則會按下 CAPS LOCK 鍵來關閉 CAPS LOCK 狀態。 這項功能是用來符合本機鍵盤行為標準,以及個人喜好設定。

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
Dll User32.dll

另請參閱

概念

GetKeyboardLayoutName

鍵盤輸入

LoadKeyboardLayout

參考

UnloadKeyboardLayout