Bagikan melalui


Fungsi LoadKeyboardLayoutA (winuser.h)

Memuat pengidentifikasi lokal input baru (sebelumnya disebut tata letak keyboard) ke dalam sistem.

Sebelum Windows 8: Beberapa pengidentifikasi lokal input dapat dimuat pada satu waktu, tetapi hanya satu per proses yang aktif pada satu waktu. Memuat beberapa pengidentifikasi lokal input memungkinkan untuk beralih dengan cepat di antara mereka.

Mulai Windows 8: Pengidentifikasi lokal input dimuat untuk seluruh sistem. Fungsi ini tidak berpengaruh jika proses saat ini tidak memiliki jendela dengan fokus keyboard.

Sintaks

HKL LoadKeyboardLayoutA(
  [in] LPCSTR pwszKLID,
  [in] UINT   Flags
);

Parameter

[in] pwszKLID

Jenis: LPCTSTR

Nama pengidentifikasi lokal input yang akan dimuat. Nama ini adalah string yang terdiri dari nilai heksadesimal Pengidentifikasi Bahasa (kata rendah) dan pengidentifikasi perangkat (kata tinggi). Misalnya, bahasa Inggris A.S. memiliki pengidentifikasi bahasa 0x0409, sehingga tata letak utama bahasa Inggris AS diberi nama "00000409". Varian tata letak bahasa Inggris A.S. (seperti tata letak Dvorak) diberi nama "00010409", "00020409", dan sebagainya.

Untuk daftar tata letak input yang disediakan dengan Windows, lihat Pengidentifikasi Keyboard dan Editor Metode Input untuk Windows.

[in] Flags

Jenis: UINT

Menentukan bagaimana pengidentifikasi lokal input akan dimuat. Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
KLF_ACTIVATE
0x00000001
Sebelum Windows 8: Jika pengidentifikasi lokal input yang ditentukan belum dimuat, fungsi akan memuat dan mengaktifkan pengidentifikasi lokal input untuk utas saat ini.

Dimulai di Windows 8: Jika pengidentifikasi lokal input yang ditentukan belum dimuat, fungsi memuat dan mengaktifkan pengidentifikasi lokal input untuk sistem.

KLF_NOTELLSHELL
0x00000080
Sebelum Windows 8: Mencegah prosedur hook ShellProc menerima kode kait HSHELL_LANGUAGE saat pengidentifikasi lokal input baru dimuat. Nilai ini biasanya digunakan ketika aplikasi memuat beberapa pengidentifikasi lokal input satu demi satu. Menerapkan nilai ini ke semua kecuali pengidentifikasi lokal input terakhir menunda pemrosesan shell hingga semua pengidentifikasi lokal input telah ditambahkan.

Mulai Windows 8: Dalam skenario ini, pengidentifikasi lokal input terakhir diatur untuk seluruh sistem.

KLF_REORDER
0x00000008
Sebelum Windows 8: Memindahkan pengidentifikasi lokal input yang ditentukan ke kepala daftar pengidentifikasi lokal input, menjadikan pengidentifikasi lokal tersebut sebagai pengidentifikasi lokal aktif untuk utas saat ini. Nilai ini menyusun ulang daftar pengidentifikasi lokal input meskipun KLF_ACTIVATE tidak disediakan.

Dimulai di Windows 8: Memindahkan pengidentifikasi lokal input yang ditentukan ke kepala daftar pengidentifikasi lokal input, menjadikan pengidentifikasi lokal tersebut sebagai pengidentifikasi lokal aktif untuk sistem. Nilai ini menyusun ulang daftar pengidentifikasi lokal input meskipun KLF_ACTIVATE tidak disediakan.

KLF_REPLACELANG
0x00000010
Jika pengidentifikasi lokal input baru memiliki pengidentifikasi bahasa yang sama dengan pengidentifikasi lokal input saat ini, pengidentifikasi lokal input baru menggantikan yang saat ini sebagai pengidentifikasi lokal input untuk bahasa tersebut. Jika nilai ini tidak disediakan dan pengidentifikasi lokal input memiliki pengidentifikasi bahasa yang sama, pengidentifikasi lokal input saat ini tidak diganti dan fungsi mengembalikan NULL.
KLF_SUBSTITUTE_OK
0x00000002
Mengganti pengidentifikasi lokal input yang ditentukan dengan lokal lain yang disukai oleh pengguna. Sistem dimulai dengan set bendera ini, dan disarankan agar aplikasi Anda selalu menggunakan bendera ini. Penggantian hanya terjadi jika kunci registri HKEY_CURRENT_USER\Keyboard Layout\Substitutes secara eksplisit mendefinisikan lokal substitusi. Misalnya, jika kunci menyertakan nama nilai "00000409" dengan nilai "00010409", memuat tata letak AS ("00000409") menyebabkan tata letak United States-Dvorak ("00010409") dimuat sebagai gantinya. Sistem menggunakan KLF_SUBSTITUTE_OK saat booting, dan disarankan agar semua aplikasi menggunakan nilai ini saat memuat pengidentifikasi lokal input untuk memastikan bahwa preferensi pengguna dipilih.
KLF_SETFORPROCESS
0x00000100
Sebelum Windows 8: Bendera ini hanya valid dengan KLF_ACTIVATE. Mengaktifkan pengidentifikasi lokal input yang ditentukan untuk seluruh proses dan mengirim pesan WM_INPUTLANGCHANGE ke jendela Fokus atau Aktif utas saat ini. Biasanya, LoadKeyboardLayout mengaktifkan pengidentifikasi lokal input hanya untuk utas saat ini.

Dimulai di Windows 8: Bendera ini tidak digunakan. LoadKeyboardLayout selalu mengaktifkan pengidentifikasi lokal input untuk seluruh sistem jika proses saat ini memiliki jendela dengan fokus keyboard.

KLF_UNLOADPREVIOUS
Bendera ini tidak didukung. Gunakan fungsi UnloadKeyboardLayout sebagai gantinya .

Nilai kembali

Jenis: HKL

Jika fungsi berhasil, nilai yang dikembalikan adalah pengidentifikasi lokal input yang sesuai dengan nama yang ditentukan dalam pwszKLID. Jika tidak ada lokal yang cocok yang tersedia, nilai yang dikembalikan adalah bahasa default sistem.

Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Ini dapat terjadi jika pustaka tata letak dimuat dari direktori aplikasi.

Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Pengidentifikasi lokal input adalah konsep yang lebih luas daripada tata letak keyboard, karena juga dapat mencakup pengonversi ucapan ke teks, Metode Input Editor (IME), atau bentuk input lainnya.

Aplikasi biasanya dapat memuat pengidentifikasi lokal input default atau IME untuk bahasa dan dapat melakukannya dengan hanya menentukan versi string pengidentifikasi bahasa. Jika aplikasi ingin memuat lokal atau IME tertentu, aplikasi harus membaca registri untuk menentukan pengidentifikasi lokal input tertentu untuk diteruskan ke LoadKeyboardLayout. Dalam hal ini, permintaan untuk mengaktifkan pengidentifikasi lokal input default untuk lokal akan mengaktifkan yang cocok pertama. IME tertentu harus diaktifkan menggunakan pengidentifikasi lokal input eksplisit yang dikembalikan dari GetKeyboardLayout atau LoadKeyboardLayout.

Sebelum Windows 8: Fungsi ini hanya memengaruhi tata letak untuk proses atau utas saat ini.

Mulai Windows 8: Fungsi ini memengaruhi tata letak untuk seluruh sistem.

Catatan

Header winuser.h mendefinisikan LoadKeyboardLayout sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winuser.h (sertakan Windows.h)
Pustaka User32.lib
DLL User32.dll

Lihat juga

ActivateKeyboardLayout

Konseptual

GetKeyboardLayoutName

Keyboard Input

MAKELANGID

Sumber Daya Lain

Referensi

UnloadKeyboardLayout