Manera correcta de tratar con UAC en C #

Tengo una aplicación (servicio de Windows) que está instalada en un directorio en la carpeta Archivos de programa. Junto a esta aplicación hay otra aplicación WinForms que se usa para configurar el servicio (entre otras cosas). Cuando realiza la configuración, guarda los cambios en un archivo de configuración que vive junto al servicio.

Cuando se ejecuta en Vista / Win7, UAC evita que el usuario guarde en el archivo de configuración. Lo que me gustaría hacer es:

coloque el icono de escudo junto al elemento de menú utilizado para configurarsolicitar permisos de UAC cuando se elige este elementosolo muestra el ícono / indicador cuando está en un sistema operativo que lo requieresolo muestra el ícono / indicador cuando se requieren permisos (por ejemplo, si la aplicación está instalada en algún lugar que no requiere permiso UAC)

Realmente no quiero ejecutar toda la aplicación como administrador, ya que también se usa para otros fines que no requieren permisos UAC (por lo que configurar un archivo de manifiesto de la aplicación no es la solución correcta). También estoy asumiendo (corríjame si me equivoco) que una vez que se hayan otorgado los permisos de UAC, mi proceso existente no puede realizar la acción y que tendré que comenzar un nuevo proceso.

¿Cómo puedo lograr esto mejor?

Respuestas a la pregunta(2)

Su respuesta a la pregunta