मैंने टाइप स्ट्रिंग की एक कुंजी बनाई है और इसे mykey रजिस्ट्री में HKEY_USERS\.DEFAULT पर 1234 के मान के साथ नाम दिया है।

मेरे पास एक बटन के साथ एक विंडोज़ फॉर्म एप्लीकेशन है।

जब भी बटन दबाया जाता है तो मैं संदेशबॉक्स में mykey का मान देखना चाहता हूं। मैं उसे कैसे प्राप्त कर सकता हूं?

यह जो मैंने किया है। लेकिन यह कोड केवल MessageBox में HKEY_USERS दिखाता है, mykey का मान नहीं।

private void button1_Click(object sender, EventArgs e)
    {
        RegistryKey rk = Registry.Users;
        rk.GetValue("HKEY_USERS\\.DEFAULT\\mykey");

        if (rk == null)
            MessageBox.Show("null");
        else
            MessageBox.Show(rk.ToString());
    }
1
goofle 13 मई 2016, 09:21

2 जवाब

सबसे बढ़िया उत्तर

आपने User को दो बार निर्दिष्ट किया है लेकिन आपको यह करना होगा कि इनमें से कोई भी, रजिस्ट्री मान को पढ़ने का सुरक्षित तरीका यहां दिया गया है

private void button1_Click(object sender, EventArgs e)
    {
        using (RegistryKey key = Registry.Users.OpenSubKey(".DEFAULT"))
        {
            if (key != null)
            {
                Object val = key.GetValue("mykey");
                if (val != null)
                {
                    MessageBox.Show(val.ToString());
                }
                else
                {
                   MessageBox.Show("Null");
                }
            }

        }
    }
1
Mostafiz 13 मई 2016, 09:33

आप Users भाग को दो बार निर्दिष्ट करते हैं। पहले रजिस्ट्री के हाइव के रूप में और फिर रजिस्ट्री कुंजी के रूप में।

आप इसे बाद वाले से हटा सकते हैं:

rk.GetValue(@".DEFAULT\mykey");

या आपको हाइव का चयन किए बिना रजिस्ट्री से शुरू करना चाहिए:

Registry.GetValue(@"HKEY_USERS\.DEFAULT\mykey");
1
Patrick Hofman 13 मई 2016, 09:25