If you don't need admin privs for the entire app, or only for a few infrequent changes you can do the changes in a new process and launch it using:
Process.StartInfo.UseShellExecute = true;
Process.StartInfo.Verb = "runas";
which will run the process as admin to do whatever you need with the registry, but return to your app with the normal priviledges. This way it doesn't prompt the user with a UAC dialog every time it launches.