入力ロケールの規定値

解決


こけだま  2005-09-07 23:51:27  No: 92085

プログラムでキーボードレイアウトを(ユーザーロケールレベルで)
変更したいのですが、ActivateKeyboardLayout や LoadKeyboardLayout
を使用しても、スレッドロケールしか変わっていないようです。

「コントロールパネルの地域のオプションの入力ロケールタブで、
インストールされている入力ロケールを選択して規定値に設定する」
と同様のことをプログラムで行うことは可能なのでしょうか?
ご存知の方おられましたらご教授願えますでしょうか?

環境は、Windows2000+VB6.0です。


こけだま  2005-09-09 03:54:59  No: 92086

自己解決できました。

Const KLF_SUBSTITUTE_OK = &H2
Const SPIF_SENDCHANGE = &H2
Const SPI_SETDEFAULTINPUTLANG = 90

Dim lngRet As Long
Dim lngLayout As Long

'英語(U.S.)のキーボードレイアウトをロード
lngLayout = LoadKeyboardLayout("00000409", KLF_SUBSTITUTE_OK)
'ロードしたレイアウトを入力ロケールの規定値に設定
lngRet = SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, lngLayout, SPIF_SENDCHANGE)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加