Cómo el control de cuentas de usuario (UAC) afecta a la aplicación
Actualización: noviembre 2007
El control de cuentas de usuario (UAC) es una característica de Windows Vista para limitar los privilegios de las cuentas de usuario. Puede encontrar información detallada sobre UAC en estos sitios:
Developer Best Practices and Guidelines for Applications in a Least Privileged Environment
Understanding and Configuring User Account Control in Windows Vista
Generar proyectos después de habilitar UAC
Si genera un proyecto de Visual C++ en Windows Vista con UAC deshabilitado, y posteriormente lo habilita, deberá limpiar y volver a generar el proyecto para que funcione correctamente.
Aplicaciones que requieren privilegios de administrador
De forma predeterminada, el vinculador de Visual C++ incrusta un fragmento del UAC en el manifiesto de una aplicación con un nivel de ejecución de asInvoker. Si su aplicación exige privilegios de administrador para funcionar correctamente (por ejemplo, si modifica el nodo HKLM del Registro o si escribe en áreas protegidas del disco, como el directorio de Windows), deberá modificar su aplicación.
La primera opción consiste en modificar el fragmento del UAC del manifiesto para cambiar el nivel de ejecución a requireAdministrator. A continuación, la aplicación pedirá al usuario credenciales administrativas antes de ejecutarse. Para obtener más información sobre cómo realizar esta acción, vea /MANIFESTUAC (Incrustar información de UAC en el manifiesto).
La segunda opción es no incrustar un fragmento del UAC en el manifiesto especificando la opción del vinculador /MANIFESTUAC:NO. En este caso, su aplicación se ejecutará en modo virtualizado. Cualquier modificación que haga en el Registro o en el sistema de archivos no permanecerá después de que su aplicación haya finalizado.
El diagrama de flujo siguiente describe cómo se ejecutará su aplicación en función de si el UAC está habilitado y si la aplicación tiene un manifiesto del UAC: