7

言語Windowsがインストールされている言語(英語)とは異なるロケール(ドイツ語)をユーザーが設定しているという問題があります。使用するためにインストールされた言語ウィンドウと、ユーザーが設定したロケールを検出する方法はありますか?問題は、共有を作成していて、ロケールに基づいてアクセス許可を設定しているため、ユーザーがロケールをドイツ語に設定している場合、「Everyone」のアクセス許可は「Jeder」ですが、OSが英語に設定されている場合はは「Jeder」のIDではないため失敗します

ありがとう

4

4 に答える 4

5

Windowsには、「UserLanguage」と「SystemLanguage」の概念があります。あなたが求めているのはSystemLanguageです。それを取得すると、正しい答えが得られます。

更新:必要なWin32関数はGetSystemDefaultUILanguage()です

オペレーティングシステムのシステムデフォルトUI言語の言語識別子を取得します。これは、WindowsVista以降では「インストール言語」とも呼ばれます。

http://msdn.microsoft.com/en-us/library/dd318123(VS.85).aspx

Windowsインストーラーはプロパティ「SystemLanguageId」を照会できることに注意してください。(インストラクターの観点から興味がある場合)

于 2009-06-04T22:22:59.963 に答える
2

質問のタイトルと質問自体は別の問題です。「Everyone」SIDを作成しようとしていますが、ロケールに応じた方法で作成しています。問題の解決策は、ロケールに依存する方法を使用しないことです。CreateWellKnownSidAPIを使用します。CreateWellKnownSidのMSDNページには、EveryoneSIDを作成するためのコードもあります。

于 2009-06-05T02:33:42.297 に答える
0

インストールされている言語パックを列挙することはできますが、インストールログにア​​クセスできない限り、インストール中に使用された言語を取得できない可能性があります。

于 2009-06-04T22:19:50.967 に答える
0

なぜ「Everyone」または「Jeder」という単語に対してコーディングするのですか?確認できる変数はありませんか?

于 2009-06-04T22:29:33.303 に答える