मुझे रजिस्ट्रीकी क्लास का उपयोग करके Windows Registry तक पहुंचने वाले .NET मॉड्यूल के साथ एक अजीब व्यवहार मिल रहा है।.NET का उपयोग कर Windows रजिस्ट्री तक पहुंच रहा है?
उदाहरण के लिए, मैंने एक .NET मॉड्यूल, testcom.dll लिखा है, जो रजिस्ट्री तक पहुंचता है। यह testcom.dll फ़ाइल देशी 32-बिट अनुप्रयोग और 64-बिट अनुप्रयोग दोनों द्वारा उपयोग की जाती है। मेरी आवश्यकता है कि एक regkey का मान प्राप्त करें (पथ HKEY_LOCAL_MACHINE\SOFTWARE\Test\MyParameters
है और कुंजी नाम Age
है)। यह "आयु" कुंजी 64-बिट मशीनों पर 32-बिट मशीनों और 64-बिट रजिस्ट्री (WOW64 नहीं) पर 32-बिट रजिस्ट्री में होगी।
64-बिट मशीन पर, जब 32-बिट अनुप्रयोग testcom.dll का उपयोग कर रहा है, तो कुंजी "आयु" WOW64 रजिस्ट्री में खोजी जाती है। जब 64-बिट अनुप्रयोग testcom.dll का उपयोग कर रहा है, तो 64-बिट रजिस्ट्री में कुंजी "आयु" की खोज की जाती है।
मेरी आवश्यकता 64-बिट मशीनों पर 64-बिट रजिस्ट्री में कुंजी को पढ़ने के लिए है जो भी अनुप्रयोग testcom.dll फ़ाइल का उपयोग करता है। मैं यह कैसे कर सकता हूँ?
अजीब बात है। जब मैंने एक बार एक ऐप लिखा था जो रजिस्ट्री में कुंजियों और मानों को देखता था तो मुझे 64-बिट ओएस पर चलते समय 32-बिट अनुप्रयोग कुंजी के लिए मैन्युअल रूप से पथ बदलना पड़ा। क्या आप कुछ कोड पोस्ट कर सकते हैं? यह देखने के लिए कि क्या कुंजी लोड करने की आपकी विधि अलग है? –
इसके अलावा एप्लिकेशन 32-बिट ऐप था। यह डिफ़ॉल्ट रूप से WOW64 नहीं खोजता था। –