2009-05-18 9 views
5

मेरे पास HKEY_LOCAL_MACHINE \ सॉफ़्टवेयर \ MyCompany शाखा के अंतर्गत संग्रहीत एप्लिकेशन सेटिंग्स हैं। सेटिंग अलग-अलग उपयोगकर्ताओं के लिए समान होनी चाहिए और यही कारण है कि सेटिंग्स HKEY_CURRENT_USER के अंतर्गत नहीं हैं। रजिस्ट्री मान एप्लिकेशन के उपयोग के दौरान केवल पढ़ते हैं।Vista में रजिस्ट्री शाखा HKEY_LOCAL_MACHINE को कैसे पढ़ा जाए?

अब, Windows Vista में और कारण यूएसी के लिए अब आपको निम्न कोड का उपयोग नहीं कर रजिस्ट्री मान को पढ़ने के लिए:

RegistryKey myKey = Registry.LocalMachine.CreateSubKey 
     ("SOFTWARE\\MyCompany\\MyAppName"); 

मैं अपने कोड (सी #) में LocalMachine शाखा से मानों पढ़ सकते हैं?

उत्तर

7

समस्या यह है कि आप इसे पढ़ने के लिए एक कुंजी बनाने की कोशिश कर रहे हैं। यदि आप उचित एपीआई का उपयोग करते हैं तो आपको Vista पर ठीक से HKLM से मूल्यों को पढ़ने में सक्षम होना चाहिए।

RegistryKey myKey = Registry.LocalMachine.OpenSubKey(
    @"Software\MyCompany\MyAppName", 
    false); 

उपरोक्त में झूठे पैरामीटर पर ध्यान दें। इसका एक पठन केवल मोड में कुंजी खोलने का असर पड़ता है। यह OpenSubKey के लिए डिफ़ॉल्ट सेटिंग है लेकिन मैं स्पष्ट होना पसंद करता हूं (मुख्य रूप से क्योंकि मुझे कभी भी डिफ़ॉल्ट याद नहीं है)।

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