Ваш метод Registry.GetValue
возвращает null
, поскольку он не может найти указанный ключ или значение, а значение по умолчанию (третий аргумент) установлено на null
. Согласно документации, этот метод не может выдать NullReferenceException
, кажется, что его вызывает вызывающий код.
Итак, вы можете попытаться указать имя значения (в конце я вижу только значение OSVersion
) или другое значение по умолчанию.
Если проблема все еще существует, проблема может быть в перенаправлении на узел реестра WOW6432Node
в редакции x64 Windows. Вы можете избежать этого с помощью следующего кода, используя метод OpenBaseKey
и указав значение RegistryView
var baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
var key = baseKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\SystemProtectedUserData\S-1-5-21-...\AnyoneRead\LockScreen");
var value = key.GetValue("OSVersion"); //for example