VB .NET - Executando sua aplicação como administrador

 O artigo de hoje mostra como você pode executar sua aplicação VB .NET como administrador do sistema.

 

O Controle de Conta de Usuário (UAC - User Access Control ) é um recurso do Windows que pode ajudar você a manter o controle do computador, informando-lhe quando um programa faz uma alteração que exige permissão em nível de administrador. O UAC funciona ajustando o nível de permissão de sua conta de usuário. Se você estiver executando tarefas que podem ser feitas por um usuário padrão, como ler email, ouvir música ou criar documentos, terá as permissões de um usuário padrão - mesmo se estiver conectado como administrador.
 

Quando forem feitas alterações no computador que exijam permissão em nível de administrador, o UAC o notificará. Se você for um administrador, poderá clicar em Sim para continuar. Se você não for um administrador, alguém com uma conta administrador no computador terá de inserir a senha para continuar.

Para executar a sua aplicação VB .NET com direitos de administrador do sistema faça o seguinte:
Nota: Este roteiro foi testado no VS 2013 e VS 2012 nas versões Express e no Windows 7.  Para outras versões do Visual Studio e do Windows podem haver diferenças.
  1. Abra o seu projeto no  Visual Studio 2012 ou no Visual Studio 2013; 
  2. Clique com o botão direito sobre o nome do projeto e no menu suspenso clique em Properties;
  3. A seguir selecione a guia Application e clique no botão - View Windows Settings: 
  1. Será aberto o arquivo app.manifest onde você deverá identificar a seguinte tag:

            <requestedExecutionLevel level="asInvoker" uiAccess="false" />

  1. Altere a tag identifica para: 

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

  1. Salve e feche o arquivo app.manifest. (Este arquivo se localiza na pasta My Project do projeto);
Agora para verificar se a sua aplicação estará sendo executada com direitos de administrador vamos incluir o código abaixo no evento Load do formulário:
Nota : Não esqueça de incluir a declaração ao namespace : Imports System.Security.Principal
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim mPrincipal As WindowsPrincipal = New WindowsPrincipal(WindowsIdentity.GetCurrent)
        If mPrincipal.IsInRole(WindowsBuiltInRole.Administrator) = False Then
            MessageBox.Show("Você precisa executar a aplicação usando a opção 'run as administrator'", "É preciso ser uma administrador", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        Else
            MessageBox.Show("Você pode executar a aplicação com direitos de administrador em modo elevado", "Administrador", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub
Outra opção seria criar a função abaixo e realizar a verificação no seu projeto:
Public Function IsUsuarioAdministrado() As Boolean
        Dim isAdmin As Boolean
        Try
            Dim user As WindowsIdentity = WindowsIdentity.GetCurrent()
            Dim principal As New WindowsPrincipal(user)
            isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator)
        Catch ex As UnauthorizedAccessException
            isAdmin = False
        Catch ex As Exception
            isAdmin = False
        End Try
        Return isAdmin
    End Function
Ao executar o seu programa será apresentada a notificação do Windows:
E a seguir a mensagem referente ao nosso código implementado no evento Load do formulário confirmando que estamos executando como administrador:

Para evitar que a notificação do Windows apareça e que a sua aplicação seja sempre executada com direitos de administrador no Windows 7 a solução é embutir um arquivo app.manifest no seu arquivo .exe, mas isso é assunto para outro artigo.

João 6:35 Declarou-lhes Jesus. Eu sou o pão da vida; aquele que vem a mim, de modo algum terá fome, e quem crê em mim jamais tará sede.

João 6:36 Mas como já vos disse, vós me tendes visto, e contudo não credes.

João 6:37 Todo o que o Pai me dá virá a mim; e o que vem a mim de maneira nenhuma o lançarei fora.

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

 

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti