2009-06-04 5 views
6

J'ai un problème où l'utilisateur a défini leurs paramètres régionaux (allemand) qui est différent que les langues Windows a été installé en tant que (en anglais). Existe-t-il un moyen de découvrir quelles fenêtres de langue ont été installées pour être utilisées par rapport aux paramètres régionaux définis par l'utilisateur? Je devrais noter le problème est que je crée un partage et j'ai placé les permissions basées sur les paramètres régionaux ainsi si l'utilisateur a placé le Locale à l'autorisation allemande pour "tout le monde" est "Jeder" échouera puisque le n'est pas une carte d'identité pour « Jeder »Découvrez les fenêtres de langue a été installé en tant que

Merci

+6

Mise à jour: La valeur de registre à rechercher est ... HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ Language \ InstallLanguage qui renvoie un code de langue à quatre chiffres. – Javamann

Répondre

5

Windows a le concept de "UserLanguage" et de "SystemLanguage". Ce que vous demandez est le SystemLanguage. Obtenez cela, et vous aurez la bonne réponse.

Mise à jour: La fonction Win32 que vous voulez est GetSystemDefaultUILanguage()

Récupère l'identificateur de langue pour la langue de l'interface utilisateur par défaut du système du système d'exploitation , également connu sous le « installer la langue » sous Windows Vista et plus tard.

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

Notez que Windows Installer peut interroger la propriété "SystemLanguageId". (dans le cas où vous êtes intéressé par un point de vue instller)

+0

J'utilise InstallAnywhere qui ne semble pas avoir accès à SystemLanguageId. Je peux juste faire l'appel de recherche de registre à la place. – Javamann

+0

Pas exactement ce que je cherchais, mais il me montra où la réponse a été (après 40 recherches google) – Javamann

+3

Alors quelle est la bonne réponse? Et –

0

Je suppose que vous pouvez énumérer les modules linguistiques installés, mais pourrait ne pas être en mesure de récupérer ce que la langue utilisée lors de l'installation, sauf si vous avez accès à les journaux d'installation.

0

Pourquoi coderiez-vous le mot "Everyone" ou "Jeder"? N'y a-t-il pas une variable que vous pouvez vérifier?

+0

windows être que je suis sûr que ce soit. – Javamann

2

titre de la question et la question elle-même sont des questions différentes. Vous essayez de créer un SID "Tout le monde", mais vous le faites d'une manière qui dépend des paramètres régionaux. La solution à votre problème consiste à ne pas utiliser une méthode dépendant des paramètres régionaux. Utilisez l'API CreateWellKnownSid. La page MSDN sur CreateWellKnownSid a même le code pour créer un SID Tout le monde.

+0

J'essaye de placer des permissions de partage d'InstallAnywhere et limité dans des options. Merci pour le pointeur vers l'API Windows. – Javamann

Questions connexes