3

私は現在、MUI に頭を悩ませようとしていますが、GetSystemDefaultUILanguage でいくつかの問題が発生しています。期待する言語が返されません。

ようこそ画面と新しいユーザー アカウントの設定ダイアログ

ユーザーは、[ようこそ画面と新しいユーザー アカウントの設定] ダイアログで、Windows の起動メッセージに使用する言語を設定できます。これは、言語設定をシステム アカウントにコピーすると主張しています。したがって、GetSystemDefaultUILanguage を使用して起動メッセージで使用される言語を取得できると期待していますが、OS を最初にインストールするために使用された言語でのみ戻ってくるようです。起動メッセージの言語を取得するにはどうすればよいですか?

4

1 に答える 1

2

GetSystemDefaultUILanguage は、OS が最初にインストールされた言語を返すようです。少なくとも 2K8 R2 (およびおそらくその他のポスト Vista OS) では、ユーザーは起動メッセージに使用される言語を変更できますが、残念ながらこれは GetSystemDefaultUILanguage には反映されません。

ただし、レジストリを介して検索することはできます。次の値には、言語のテキストによる説明 (en-US など) が格納されます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\Settings\PreferredUILanguages

この値は、複数の言語がインストールされているマシンでのみ設定されるようです (おそらく、ユーザーがウェルカム スクリーンの言語を変更した場合のみ)。

したがって、現在のウェルカム スクリーンの言語を取得するには、フローは次のようになります。

  • PreferredUILanguages を読み取ろうとする
  • 見つかった場合は、言語 ID に解析します
  • それ以外の場合は、GetSystemDefaultUILanguage を呼び出します
  • 返された言語 ID を指定して、適切な言語リソースを読み込みます

起動時に別の言語で表示しようとしていないのであれば、これはそれほど苦痛ではありません! 通常は、GetUserDefaultUILanguage を使用できます。

于 2012-03-28T16:44:28.783 に答える