Entrée de registre existe, mais parfois je ne peux pas le lire

0

La question

J'ai lu ce paramètre de registre de nombreuses fois, mais parfois pas. Ce n'est que très rarement, mais c'était un accident dans mon client.

C'est normal que parfois jamais entrée existe dans le registre de Windows je deviens valeur par défaut au lieu vraiment existé entrée?

Le même utilisateur lit le registre 100 fois et obtient la valeur par défaut un peu plus tard.

public int GetDrukujSaldoOdbiorcy(int DefaultValue)
        {
            int result = DefaultValue;
            try
            {
                RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\BRMLM\MERA\USER_PARAM\Drukowanie");
                if (regKey != null)
                {
                    result = (int)regKey.GetValue("DrukujSaldoOdbiorcy", DefaultValue);
                    regKey.Close();
                }
                
            }
c# registry
2021-11-23 13:38:29
1

La meilleure réponse

1

Il est possible que vous n'avez pas la permission de lire à partir du registre. Vous devez comprendre vos autorisations de l'application sur l'ordinateur client. Dans votre code, vous devez vérifier tout d'abord si vous pouvez le lire comme ceci:

public static bool CanReadKey(this RegistryPermission reg, string key)
{
    try
    {
        RegistryPermission r = new RegistryPermission(RegistryPermissionAccess.Read, key);
        r.Demand();
        return true;
    }
    catch (SecurityException)
    {
        return false;
    }
}

Dans votre cas, c'est toujours la valeur par défaut lorsque la clé ne peut pas être lu en raison de la try capture de l'exception et de la result valeur reste avec l'initialisation par défaut que vous avez à l'avance de l' try.

2021-11-23 13:48:42

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................