Voce del registro di sistema esiste, ma a volte non posso leggerlo

0

Domanda

Ho letto questa impostazione del registro di sistema molte volte, ma a volte non. Questo è molto raro, ma è stato un incidente in un mio cliente.

È normale che a volte mai esiste la relativa voce nel registro di Windows diventa valore di default invece realmente esistito voce?

Lo stesso utente legge il registro 100 volte e si ottiene il valore di default un po ' più tardi.

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

Migliore risposta

1

È possibile che non hai il permesso di leggere il registro di sistema. Si dovrà capire l'applicazione di autorizzazioni sul computer client. Nel codice si dovrebbe prima verificare se la si può leggere come questo:

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;
    }
}

Nel tuo caso è sempre il valore di default quando la chiave non può essere letto, perché il try cattura l'eccezione e la result valore rimane con l'inizializzazione di default che avete in vista della try.

2021-11-23 13:48:42

In altre lingue

Questa pagina è in altre lingue

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