Compartir a través de


Cómo el Control de cuentas de usuario (UAC) afecta a la aplicación

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:

Compilar proyectos después de habilitar UAC

Si compila un proyecto de Visual Studio C++ en Windows Vista con UAC deshabilitado, y posteriormente lo habilita, deberá limpiar y recompilar el proyecto para que funcione correctamente.

Aplicaciones que requieren privilegios de administrador

De forma predeterminada, el enlazador 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 información sobre cómo hacerlo, consulte /MANIFESTUAC (Insertar 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:

Flowchart of Windows Loader behavior.

Consulte también

Procedimientos recomendados para la seguridad