Como o controle de conta de usuário (UAC) afeta o seu aplicativo
User Account Control (UAC) is a feature of Windows Vista in which user accounts have limited privileges. Você pode encontrar informações detalhadas sobre o UAC nesses sites:
Guia passo a passo do controle de conta de usuário do Vista de Windows
Entendendo e configurando o controle de conta de usuário no Windows Vista
Construindo projetos após ativar o UAC
Se você criar um projeto Visual C++ no Windows Vista com UAC desabilitado e você ativar o UAC posteriormente, você deve limpar e reconstruir o projeto para que ele funcione corretamente.
Aplicativos que exigem privilégios administrativos
Ser padrão, o vinculador do Visual C++ incorpora um fragmento do UAC no manifesto de um aplicativo com um nível de execução de asInvoker. Se seu aplicativo requer privilégios administrativos para executar corretamente (por exemplo, se ele modifica o nó HKLM do registro ou grava em áreas protegidas do disco, como, por exemplo, o diretório do Windows), você deve modificar seu aplicativo.
A primeira opção é modificar o fragmento UAC do manifesto para alterar o nível de execução para requireAdministrator. O aplicativo solicitará ao usuário credenciais administrativas antes da execução. Para obter informações sobre como fazer isso, consulte / (Informações do UAC incorpora no manifesto) MANIFESTUAC.
A segunda opção é não incorporar um fragmento do UAC no manifesto, especificando a /MANIFESTUAC:NO opção de vinculador. In this case, your application will run virtualized. As alterações feitas no registro ou o sistema de arquivos não serão mantidas após o término de seu aplicativo.
O fluxograma a seguir descreve como o aplicativo será executado dependendo se o UAC está habilitado e se o aplicativo tem um manifesto UAC: