Если вам не нужны права администратора для всего приложения или только для нескольких редких изменений, вы можете внести изменения в новый процесс и запустить его с помощью:
Process.StartInfo.UseShellExecute = true;
Process.StartInfo.Verb = "runas";
, который запустит процесс от имени администратора, чтобы сделать с реестром все, что вам нужно, но вернуться к своему приложению с обычными привилегиями. Таким образом, он не запрашивает у пользователя диалоговое окно UAC при каждом запуске.