Como o UAC (Controle de Conta de Usuário) afeta o aplicativo
O UAC (Controle de Conta de Usuário) é um recurso do Windows Vista no qual as contas de usuário têm privilégios limitados. Você pode encontrar informações detalhadas sobre o UAC nestes sites:
Criando projetos após a habilitação do UAC
Se você criar um projeto do Visual Studio C++ no Windows Vista com o UAC desabilitado e, posteriormente, habilitar o UAC, deverá limpar e recriar o projeto para que funcione corretamente.
Aplicativos que exigem privilégios de administrador
Por padrão, o vinculador do Visual C++ insere um fragmento do UAC no manifesto de um aplicativo com o nível de execução de asInvoker
. Se o aplicativo requer privilégios administrativos para ser executado corretamente (por exemplo, se ele altera o nó HKLM do Registro ou se grava nas áreas protegidas do disco, como o diretório do Windows), modifique seu aplicativo.
A primeira opção é modificar o fragmento do UAC do manifesto para alterar o nível de execução para requireAdministrator. O aplicativo solicitará que o usuário forneça as credenciais administrativas para que seja executado. Para obter mais informações sobre como fazer isso, confira /MANIFESTUAC (insere informações UAC no manifesto).
A segunda opção é não inserir um fragmento do UAC no manifesto especificando a opção /MANIFESTUAC:NO
do vinculador. Nesse caso, o aplicativo será executado virtualizado. Todas as alterações feitas no Registro ou no sistema de arquivos não persistirão depois que o aplicativo for encerrado.
Este fluxograma descreve como o aplicativo será executado, caso o UAC esteja habilitado e caso o aplicativo tenha um manifesto do UAC: