Я подозреваю, что вы работаете на 64-битной машине, но как 32-битный процесс. Это значение, вероятно, не существует в вашем 32-разрядном реестре, но в 64-разрядном реестре (это, безусловно, относится к моему) Вам, вероятно, понадобится получить доступ к 64-битному кусту, чтобы иметь возможность прочитать это значение. Это не должно быть проблемой 32-битного процесса.
const string keyPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background";
using (var hklm64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
using (var key = hklm64.OpenSubKey(keyPath))
{
var value = (int)key.GetValue("OEMBackground", 2);
}