Una vez que mi programa está instalado en una máquina cliente, ¿cómo puedo forzar que mi programa se ejecute como administrador en Windows 7?
Querrás modificar el manifiesto que se incrusta en el programa. Esto funciona en Visual Studio 2008 y superior: Proyecto + Añadir nuevo elemento, seleccione "Archivo de manifiesto de la aplicación". Cambia el elemento <requestedExecutionLevel>
por:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
El usuario recibe el aviso UAC cuando inicia el programa. Utilícelo con prudencia; su paciencia puede agotarse rápidamente.
Añadir un elemento requestedExecutionLevel
a tu manifiesto es sólo la mitad de la batalla; tienes que recordar que UAC puede estar desactivado. Si lo está, tienes que realizar la comprobación a la vieja usanza y poner un diálogo de error si el usuario no es administrador (llama a IsInRole(WindowsBuiltInRole.Administrator)
en el CurrentPrincipal
de tu hilo).
Puede incrustar un archivo de manifiesto en el archivo EXE, que hará que Windows (7 o superior) ejecute siempre el programa como administrador.
Puede encontrar más detalles en Paso 6: Crear e incrustar un manifiesto de aplicación (UAC) (MSDN).