Класс Microsoft.Win32.RegistryKey
предоставит вам все функции, необходимые для чтения, изменения и удаления ключей и значений реестра.
Например:
using Microsoft.Win32;
...
RegistryKey myKey = Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system", true);
if(myKey == null)
{
myKey = Registry.LocalMachine.CreateSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system",
RegistryKeyPermissionCheck.ReadWriteSubTree);
}
myKey.SetValue("dontdisplaylastusername", 0, RegistryValueKind.DWord);
myKey.SetValue("legalnoticecaption", "Justin Tech", RegistryValueKind.String);
myKey.SetValue("legalnoticetext", "This computer system...",
RegistryValueKind.String);
myKey.SetValue("shutdownwithoutlogon", 1, RegistryValueKind.DWord);
myKey.SetValue("undockwithoutlogon", 1, RegistryValueKind.DWord);
Подраздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies \system
действительно будет существовать, я покажу тест, который вы бы сделали, если бы создавали свои собственные ключи и значения для полноты.