No Vista e Windows 7 e versões posteriores, um mecanismo de segurança chamado UAC (Controle de Conta de Usuário) foi adicionado, e se o UAC for ativado, mesmo que o usuário faça login com privilégios de administrador, suas aplicações não podem gravar no diretório do sistema, no registro do sistema e em outras configurações que possam afetar o funcionamento normal do sistema por padrão. Esse mecanismo aumenta muito a segurança do sistema, mas para desenvolvedores de aplicações, não podemos forçar os usuários a desligar o UAC, mas às vezes a aplicação que desenvolvemos precisa rodar como administrador, como realizar essa função? Veja como um programa em C# implementa o pedido para o usuário executar com privilégios de administrador. Neste exemplo, o programa WinForm demonstra que um novo projeto é gerado e modificado de acordo: Método 1: Iniciar via System.Diagnostics.Process.Start(): Método de implementação: Modifique o arquivo do programa gerado por padrão, e o código modificado é o seguinte: Como o código já foi comentado, ele não entrará em detalhes; Efeito: Como é iniciado chamando a chamada externa de System.Diagnostics.Process.Start(), ao ser executado diretamente pelo VS, ele não solicitará ao VS que precise de direitos de administrador, apenas o próprio programa precisa de direitos de administrador, o que é diferente do programa que gera a aplicação. Essa é a principal diferença em relação à implementação do método 2. Método 2: Adicionando um arquivo manifesto de aplicação: No Projeto Adicionar Novo Item, selecione Arquivo de Manifesto da Aplicação e clique no botão Adicionar Uma vez adicionado, o arquivo app.manifest é aberto por padrão, o que irá: Modificado para: Depois, abra as Propriedades do Projeto e modifique o Manifesto na aba Recursos na aba Aplicações para o novo app.manifest. Reconstrua o projeto e, quando abrir o programa novamente, será solicitado a executar com privilégios de administrador. Note que, se você começar a depurar no VS, será solicitado que essa tarefa exige que o aplicativo tenha privilégios elevados. Como mostrado abaixo: Selecione Reiniciar com outras credenciais para fazer isso. Método 3: Modificar diretamente as propriedades do arquivo do programa Clique com o botão direito no arquivo do programa na aba Compatibilidade na caixa de diálogo Propriedades que aparece Marque "Rodar este programa como administrador".
|