2009-06-04 7 views
6

के रूप में स्थापित किया गया था, मुझे एक समस्या है जहां उपयोगकर्ता ने अपना लोकेल (जर्मन) सेट किया है जो भाषा विंडोज़ (अंग्रेजी) के रूप में स्थापित है। क्या यह पता लगाने का कोई तरीका है कि बनाम किस प्रकार विंडोज़ भाषा स्थापित की गई थी। उपयोगकर्ता ने कौन सा लोकेल सेट किया है? मुझे यह नोट करना चाहिए कि मैं एक शेयर बना रहा हूं और मैंने लोकेल के आधार पर अनुमतियां सेट की हैं, इसलिए यदि उपयोगकर्ता ने लोकेल को जर्मन में "हर कोई" की अनुमति "जेडर" की अनुमति दी है, लेकिन यदि ओएस अंग्रेजी के लिए सेट है असफल हो जायेगी क्योंकि "Jeder" के लिए एक आईडीभाषा विंडो को

धन्यवाद

+6

अद्यतन: लुकअप के लिए रजिस्ट्री मान है ... HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ Language \ InstallLanguage जो चार अंकों का भाषा कोड देता है। – Javamann

उत्तर

5

विंडोज़ में "उपयोगकर्ता भाषा" और "सिस्टम भाषा" की अवधारणा है। आप जो पूछ रहे हैं वह सिस्टम भाषा है। इसे प्राप्त करें, और आपके पास सही जवाब होगा।

अद्यतन: Win32 समारोह आप चाहते हैं GetSystemDefaultUILanguage है()

ऑपरेटिंग सिस्टम के सिस्टम डिफ़ॉल्ट UI भाषा, भी विंडोज पर के रूप में जाना "भाषा को स्थापित करने के लिए" भाषा पहचानकर्ता पुन: प्राप्त करता Vista और बाद में।

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

ध्यान दें कि Windows इंस्टालर संपत्ति "SystemLanguageId" क्वेरी कर सकते हैं। (यदि आप किसी इंस्टालर पॉइंट व्यू से रूचि रखते हैं)

+0

मैं InstallAnywhere का उपयोग कर रहा हूं जो SystemLanguageId तक पहुंच नहीं प्रतीत होता है। मैं इसके बजाय रजिस्ट्री लुकअप कॉल कर सकता हूं। – Javamann

+0

बिल्कुल वही नहीं जो मैं खोज रहा था लेकिन यह मुझे इंगित करता था कि जवाब कहां था (40 Google खोजों के बाद) – Javamann

+3

तो सही जवाब क्या था? –

0

मैं कल्पना आप स्थापित भाषा पैक करके बताना सकता है नहीं है, लेकिन नहीं पुनः प्राप्त करने के क्या भाषा के दौरान इस्तेमाल किया गया था स्थापित जब तक आप की पहुंच है सक्षम हो सकता है इंस्टॉल लॉग।

0

आप "हर कोई" या "जेडर" शब्द के खिलाफ क्यों कोडिंग करेंगे? क्या कोई वैरिएबल नहीं है जिसे आप देख सकते हैं?

+0

विंडोज़ होने के नाते मुझे यकीन है कि यह है। – Javamann

2

प्रश्न का शीर्षक और प्रश्न स्वयं ही अलग-अलग मुद्दे हैं। आप एक "हर कोई" एसआईडी बनाने की कोशिश कर रहे हैं, लेकिन आप इसके बारे में इस तरह से जा रहे हैं जो लोकेल पर निर्भर करता है। आपकी समस्या का समाधान लोकेल-निर्भर विधि का उपयोग नहीं करना है। CreateWellKnownSid API का उपयोग करें। CreateWellKnownSid पर एमएसडीएन पेज में भी हर कोई एसआईडी बनाने के लिए कोड है।

+0

मैं InstallAnywhere से शेयर अनुमतियां सेट करने और विकल्पों में सीमित करने की कोशिश कर रहा हूं। विंडोज एपीआई के सूचक के लिए धन्यवाद। – Javamann

संबंधित मुद्दे