Должен ли я иметь возможность программно установить значение QWORD реестра на UInt64.MaxValue, а значение DWORD на UInt32.MaxValue?
Я провел пару часов и не определился с правильным способомустановить или получить реестр QWORD.Максимальное значение QWORD должно быть UInt64.MaxValue или FFFFFFFFFFFFFFFF, правильно?Это то, что RegEdit позволяет мне установить его, но я не могу установить значение, используя пример Microsoft или любые другие примеры установки значений реестра.
У меня также есть проблема с DWORD, у меня проблема с установкой значенияно есть обходной путь для его извлечения.
// Create HKCU\RegistryValueKind key
RegistryKey rk = Registry.CurrentUser.CreateSubKey("RegistryValueKindExample");
// This sets DWORD registry value to 7FFFFFFF instead of FFFFFFFF
rk.SetValue("DWordValue", Int32.MaxValue, RegistryValueKind.DWord);
// This sets QWORD registry value to 7FFFFFFFFFFFFFFFF instead of FFFFFFFFFFFFFFFF
rk.SetValue("QuadWordValue", Int64.MaxValue, RegistryValueKind.QWord);
// Unsigned UInt32 would be great for setting DWORD to max value...
Console.WriteLine("UInt32.MaxValue=" + UInt32.MaxValue.ToString());
Console.WriteLine("UInt32.MaxValue(Hex)=" + UInt32.MaxValue.ToString("X"));
// But this line craps out: System.ArgumentException: 'The type of the value object did not match the specified RegistryValueKind or the object could not be properly converted.'
//rk.SetValue("DWordValue", UInt32.MaxValue, RegistryValueKind.DWord);
// UInt64 would be great for setting QWORD to max value...
Console.WriteLine("UInt64.MaxValue=" + UInt64.MaxValue.ToString());
Console.WriteLine("UInt64.MaxValue(Hex)=" + UInt64.MaxValue.ToString("X"));
// But this line craps out: Same error as setting DWORD value to UInt32.MaxValue
rk.SetValue("QuadWordValue", UInt64.MaxValue, RegistryValueKind.QWord);