Como o Controle de Conta de Usuário (UAC) 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:

Flowchart of Windows Loader behavior.

Confira também

Práticas Recomendadas de segurança