Registre.GetValue toujours retourner null
j'ai la clé suivante dans mon registre:
sous:HKEY_LOCAL_MACHINESOFTWARERSA
j'ai de la valeur de l'objet de l'appel - WebExControlManagerPath
et sa valeur est c:
je suis en train de faire ceci:
var r = Registry.GetValue(@"HKEY_LOCAL_MACHINESOFTWARERSA", "WebExControlManagerPth",null);
if(r!=null)
ProcessAsUser.Launch(ToString());
Mais r
la valeur est toujours null.
des idées?
13
demandé sur
marc_s
2012-02-29 04:30:18
6 réponses
vous n'ACCÉDEZ PAS à la ruche HKEY_LOCAL_MACHINE de la même façon que vous le feriez dans C# dans les scripts par lots. Vous appelez Registry.LocalMachine
, comme suit:
RegistryKey myKey = Registry.LocalMachine.OpenSubKey( @"Software\RSA", false);
String value = (String)myKey.GetValue("WebExControlManagerPth");
if (!String.IsNullOrEmpty(value))
{
ProcessAsUser.Launch(ToString());
}
mise à Jour:
si elle retourne null, définissez votre architecture de construction à tout CPU. Le système d'exploitation peut virtualiser les registres 32 bits et 64 bits différemment. Voir:http://msdn.microsoft.com/en-us/library/windows/desktop/aa965884%28v=vs.85%29.aspx, lecture 64bit Registre à partir d'une application 32 bits