Il peut arriver si vous êtes sur une machine 64 bits. Créer une classe d'aide première (nécessite .NET 4.0 ou version ultérieure):
public class RegistryHelpers
{
public static RegistryKey GetRegistryKey()
{
return GetRegistryKey(null);
}
public static RegistryKey GetRegistryKey(string keyPath)
{
RegistryKey localMachineRegistry
= RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
Environment.Is64BitOperatingSystem
? RegistryView.Registry64
: RegistryView.Registry32);
return string.IsNullOrEmpty(keyPath)
? localMachineRegistry
: localMachineRegistry.OpenSubKey(keyPath);
}
public static object GetRegistryValue(string keyPath, string keyName)
{
RegistryKey registry = GetRegistryKey(keyPath);
return registry.GetValue(keyName);
}
}
Utilisation:
string keyPath = @"SOFTWARE\MyApp\Settings";
string keyName = "MyAppConnectionStringKey";
object connectionString = RegistryHelpers.GetRegistryValue(keyPath, keyName);
Console.WriteLine(connectionString);
Console.ReadLine();
Êtes-vous bien échapper KeyPath? Est-ce "SOFTWARE \\ TestKey", et non "SOFTWARE \ TestKey"? – Michael
oui, je l'ai posté faux. Il est en fait configuré pour utiliser \\ – PositiveGuy
Donc, cela a bien fonctionné sur le PC de mon patron. Aucune raison de ne pas le faire ici. J'ai donné l'accès au compte asp.net car je cours le serveur web VS et retourne toujours null. – PositiveGuy