2010-05-26 18 views

Respuesta

9

Creo que lo que necesita es GetSubKeyNames() como en este ejemplo.

private void GetSubKeys(RegistryKey SubKey) 
{ 
    foreach(string sub in SubKey.GetSubKeyNames()) 
    { 
     MessageBox.Show(sub); 
     RegistryKey local = Registry.Users; 
     local = SubKey.OpenSubKey(sub,true); 
     GetSubKeys(local); // By recalling itself it makes sure it get all the subkey names 
    } 
} 

//This is how we call the recursive function GetSubKeys 
RegistryKey OurKey = Registry.Users; 
OurKey = OurKey.OpenSubKey(@".DEFAULT\test",true); 
GetSubKeys(OurKey); 

(NOTA: Este era original copiado de un tutorial http://www.csharphelp.com/2007/01/registry-ins-and-outs-using-c/, pero el sitio parece ser ahora hacia abajo).

+0

Gracias Chris! ¡Estaba a punto de escribir la función recursiva pero no estoy familiarizado con los métodos! Gracias – Tom

3
private void GetSubKeys(RegistryKey SubKey) 
{ 
    foreach(string sub in SubKey.GetSubKeyNames()) 
    { 
     MessageBox.Show(sub); 
     RegistryKey local = Registry.Users; 
     local = SubKey.OpenSubKey(sub,true); 
     GetSubKeys(local); // By recalling itselfit makes sure it get all the subkey names 
    } 
} 
//This is how we call the recursive function GetSubKeys 
RegistryKey OurKey = Registry.Users; 
OurKey = OurKey.OpenSubKey(@".DEFAULT\test",true); 
GetSubKeys(OurKey); 

http://www.csharphelp.com/2007/01/registry-ins-and-outs-using-c/

Cuestiones relacionadas