मैं इस कुंजी के भीतर उप कुंजी के सभी प्रदर्शन नाम पाने के लिए कोशिश कर रहा हूँ में देख सकते हैं के लिए अशक्त रिटर्नOpenSubKey() एक रजिस्ट्री कुंजी है कि मैं regedit.exe
RegistryKey newKey;
string val;
string KeyPath64Bit = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
RegistryKey mainKey = Registry.LocalMachine.OpenSubKey(KeyPath64Bit);
string[] RegKeys64Bits = Registry.LocalMachine.OpenSubKey(KeyPath64Bit).GetSubKeyNames();
foreach (string s in RegKeys64Bits)
{
newKey = mainKey.OpenSubKey(s);
val = newKey.GetValue("DisplayName", -1, RegistryValueOptions.None).ToString();
if (val != "-1")
file64.WriteLine(val);
}
कोड चलाने के बाद मैं कुंजियों में से एक नहीं मिल सकता है मैं की जरूरत है:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}
और इसमें डिस्प्ले नाम होना चाहिए: माइक्रोसॉफ्ट विजुअल सी ++ 2010 x64 पुनर्वितरण योग्य - 10.0.3031 9, लेकिन इसके बजाय GetSubKeyNames()
विधि मुझे उप कुंजी देता है: जिसमें कोई डिस्प्ले नाम नहीं है।
मुझे सटीक उप कुंजी क्यों चाहिए ({DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}
) और मैं इसे कैसे प्राप्त कर सकता हूं?
यदि आप विज़ुअल स्टूडियो को व्यवस्थापक के रूप में चलाते हैं तो क्या आप ऐसा कर सकते हैं? – tsells
@tsells ने कोशिश की और यह काम नहीं करता है। –
क्या आप 64-बिट ओएस पर 32-बिट प्रक्रिया में चल रहे हैं? –