<Return[A]><Top>

ActivateKeyboardLayout

Declare Function Api_ActivateKeyboardLayout& Lib "user32" Alias "ActivateKeyboardLayout" (ByVal hkl&, ByVal Flags&)

Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal Flags As Long) As Long

呼び出し側スレッドまたは現在のプロセスに対して入力ロケール識別子( 旧名キーボードレイアウトハンドル)を設定する。入力ロケール識別子は、キーボードの物理レイアウトだけでなく、ロケールも指定する。

パラメータ

hkl
    アクティブ化する入力ロケール識別子を指定する。
    Windows 95/98:このパラメータは、LoadKeyboardLayout 関数か GetKeyboardLayoutList 関数で取得するか、または次表のいずれか

    の値を指定することができる。
    Windows NT:入力ロケール識別子は、LoadKeyboardLayout 関数であらかじめロードされていなければならない。このパラメータには、キ

    ーボードレイアウトのハンドル、または次の値のいずれかを指定する。

    値                   

意味                                                                                                                                                        

    HKL_NEXT

システムにより管理されている、ロードされたロケール識別子の巡回リスト内で、次のロケール識別子を選択する。

    HKL_PREV

システムにより管理されている、ロードされたロケール識別子の巡回リスト内で、前のロケール識別子を選択する。

Flags
    入力ロケール識別子をどのようにアクティブ化するかを指定する。このパラメータには次の値のいずれかを指定することができる。

    値                                       

意味                                                                                                                                             

    KLF_REORDER

 

 

 

 

 

 

このビットがセットされている場合、与えられたロケール識別子をリストの先頭に移動して、システムが持つロードされたロケール識別子の巡回リストを並べ替える。このビットがセットされていない場合、リストは順序が変更されることなく循環する。
たとえば、フランス語、ドイツ語、スペイン語のロケール識別子をこの順でロードした状態で、さらに英語のロケール識別子をアクティブ化している場合、KLF_REORDER ビットをセットしてドイツ語のロケール識別子をアクティブ化すると、順序はドイツ語、英語、フランス語、スペイン語の順になる。ドイツ語ロケール識別子を KLF_REORDER ビットをセットせずにアクティブ化すると、順序はドイツ語、スペイン語、英語、フランス語の順になる。
ロードされているロケール識別子の数が3未満の場合、このフラグは適切な値を取らない。

    KLF_SETFORPROCESS

 

Windows 2000:プロセス全体に対して指定されたロケール識別子をアクティブ化し、現在のスレッドのフォーカスまたはアクティブウィンドウに WM_INPUTLANGCHANGE メッセージを送信する。

    KLF_UNLOADPREVIOUS

このフラグはサポートされていない。代わりに UnloadKeyboardLayout 関数を使う。


戻り値
    Windows NT 3.51 以前:戻り値は BOOL 型である。関数が成功すると、0 以外の値が返る。関数が失敗すると、0 が返る。
    Windows 95/98 および Windows NT 4.0 以降:戻り値は HKL 型です。関数が成功すると、以前の入力ロケール識別子( 旧名キーボー

    ドレイアウトハンドル)が返る。関数が失敗すると、0 が返る。
    拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    この関数はキーボードレイアウトの制限を受けない。hkl パラメータは実際には入力ロケール識別子である。入力ロケール識別子には音声

    入力コンバータ、IME、またはその他のあらゆる入力形式が含まれており、キーボードレイアウトよりも広い概念を持つ。入力ロケール識別

    子は、一度に複数ロードすることができるが、アクティブ化できるのは 1 つだけである。複数の入力ロケール識別子をロードすると、切り替

    えを迅速に行うことができる。
    Windows 95/98:アプリケーションは、上位ワードを 0 に、下位ワードをロケール識別子にセットして、有効な入力ロケール識別子を作成す

    ることができる。入力ロケール識別子を使うと、物理レイアウトに影響を与えずに入力言語を変更することができる。
    ロケールごとに複数の入力メソッドエディタ(IME)が使えるときは、上位ワード( デバイスハンドル)が 0 である入力ロケール識別子を渡すと、そ

    のロケールに属する IME のリストの最初にある IME がアクティブ化される。