2016-02-29 42 views
0

我有一個程序,我嘗試讀取所有類下的密鑰,但是當我這樣做GetSubKeyNames()許多密鑰都被跳過我只獲得包含另一個子密鑰的密鑰它。從c註冊表訪問classesroot下的所有密鑰#

RegistryKey key = Registry.ClassesRoot; 
foreach (string tempKeyName in key.GetSubKeyNames()) 
{ 
    MessageBox.Show(tempKeyName); 
} 

enter image description here

+0

我不能再現的不當行爲:'MyTextBox.Text =的string.join(Environment.NewLine,key.GetSubKeyNames()); '*顯示*'._sln70'其他鍵之間 –

+0

我只是一個初學者在C#所以我可以有代碼?這將是一個非常值得關注的問題。 – arn48

回答

0

這段代碼顯示HKEY_CLASSES_ROOT下的所有註冊表項。如果它不適合你,編輯你的問題告訴我們Windows版本,也許如果你在一個企業網絡。

RegistryKey rk = Registry.ClassesRoot; 
// Print out the keys. 
PrintKeys(rk); 

PrintKeys:

static void PrintKeys(RegistryKey rkey) 
{ 

    // Retrieve all the subkeys for the specified key. 
    String[] names = rkey.GetSubKeyNames(); 

    Console.WriteLine("Subkeys of " + rkey.Name); 
    Console.WriteLine("-----------------------------------------------"); 

    // Print the contents of the array to the console. 
    foreach (String s in names) 
    { 
     Console.WriteLine(s); 
    } 
} 

來源:MSDN

+0

同樣的問題出現我正在使用Windows 7 32位 – arn48

+0

那麼,我不能只想到一個權限問題或可能是一個損壞的註冊表 – Pikoh

+0

可能你是對的,但我怎麼知道它的一個損壞的註冊表項導致沒有錯誤是投擲 – arn48