REGISTRO DO WINDOWS

ASHKATCHUP 10/05/2010 10:55:26
#341392
Bom dia a todos.

Volta e meia, acontece, em algum cliente, um erro relativo ao registro das dlls do meu sistema. Ou o cliente mudou a dll de local ou existem duas dlls registradas.

Alguém sabe como fazer um algoritmo para PROCURAR dentro do registro do windows por uma palavra e deletar todas chaves que forem encontradas?

Muito obrigado.
ASHKATCHUP 11/05/2010 14:58:50
#341501
Já que ninguém se manifestou, estou postando a solução que eu fiz...
Talvez isso será útil para alguém, algum dia.


Chamada:


Varre_Registro(textBox1.Text, Registry.LocalMachine);
Varre_Registro(textBox1.Text, Registry.ClassesRoot);


Void:

private void Varre_Registro(string sValorRegistrado, RegistryKey Root)
{
RegistryKey objArvore;

objArvore = Root;

if (objArvore != null)
{
foreach (string objValor in objArvore.GetValueNames())
{
if (objArvore.GetValue(objValor) != null)
{
if (objArvore.GetValue(objValor).ToString().ToLower().Contains(sValorRegistrado.ToLower()))
{
objArvore.DeleteValue(objValor);
iContRegistros++;
}
}
}

if (objArvore.SubKeyCount > 0)
{
foreach (string objReg in objArvore.GetSubKeyNames())
{
try
{
RegistryKey objAux = Root.OpenSubKey(objReg, true);
}
catch
{
continue;
}
Varre_Registro(sValorRegistrado, Root.OpenSubKey(objReg, true));
}
}
}
}
Tópico encerrado , respostas não são mais permitidas