Compartir a través de


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:

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:

Vea también

Conceptos

Procedimientos recomendados para la seguridad en C++