bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Capturando informações do Windows e do hardware

Capturando informações do Windows e do Hardware

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

Função Environ()

A função Environ(argumento) captura informações sobre o ambiente Windows, tais como: o nome do usuário, o nome do domínio e pastas relevantes.

A lista dos argumentos existentes é obtida do seguinte código:

Faça o login aqui para ter acesso ao código.

Veja na imagem, a lista gerada pelo código acima.

Usando Access - Lista comandos environ()

 

A lista completa está disponível no arquivo exemplo do artigo:

Exemplos de uso

Vamos supor que você queira acessar uma imagem armazenada na pasta TEMP do usuário.  Para isso,  bastará montar a linha da seguinte forma:

strPathImagem = environ("temp") & "\NomeImagem.gif"

E no caso de querer exibir na barra superior de um formulário, o nome do Computador e o nome do Usuário do Windows, bastará proceder desta forma:

strCaption = "Computador: " & environ("Computername")
strCaption = strCaption & " *** Usuário: " & environ("UserName")

Me.caption = strCaption     

Usando o WMI

Com a programação WMI é possível acessar, configurar, gerenciar e monitorar a maioria dos recursos do Windows. 

Com VBA e WMI são obtidos resultados que não são possíveis com as API's do Windows.  

Nota: O WMI é muito poderoso e por isso você precisa ter bastante atenção para não danificar as configurações do Windows.

Aqui estão algumas das coisas que podemos fazer em computadores locais ou remotos, usando o VBA com o WMI :

• Gerenciar usuários e políticas de grupo;

• Ler e salvar os Log's de eventos para arquivos;

• Obter o tamanho de memória livre em um disco rígido;

• Obter a versão do Microsoft Office;

• Obter os atributos de impressoras;

• Obter a versão do sistema operacional Service Pack; 

• Obter o nome do sistema operacional;

• Obter o número de versão do sistema operacional;

• Obter o número de compilação do sistema operacional;

• Obter número de série do Windows;

• Obter trabalhos agendados;

• Contar e listar processos de execução;

• Encerrar processos;

• Excluir, Instalar e Atualizar softwares;

• Listar todos os softwares instalados.

O WMI possui classes, propriedades, métodos e seu próprio dialeto de consulta de VBScript chamado WQL.  O WMI usa o CIM (Common Information Model) para acessar informações e realizar ações.  O CIM concede-nos acesso a quase tudo sobre um PC. Você pode aprender mais sobre CIM clicando aqui.

A seguir está um exemplo de código VBA usando o WMI.  Este código obtém o endereço IP da máquina local.

Faça o login aqui para ter acesso ao código.

Observe que depois de declarar algumas variáveis, criamos uma instância de um objeto WMI, usando GetObject("winmgmts:").

strComputer = "." 'Acesso a máquina local
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
                    strComputer & "\root\cimv2")

Nós usamos winmgmts para acessar a raiz ("\root\cimv2″) da biblioteca CIM.

A variável strComputer com o valor "." , informa que estamos acessando o computador local.  O acesso a computadores remotos não está incluído neste meu artigo.

Em seguida podemos instanciar, através de uma consulta, uma coleção de propriedades da classe Win32_NetworkAdapterConfiguration. Veja:

strSql = "Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE"
Set IPConfigSet = objWMIService.ExecQuery(strSql)

Você pode aprender mais sobre WQL, a linguagem de consulta WMI, Aqui.

E finalmente varremos a classe instanciada (Win32_NetworkAdapterConfiguration), para obtermos o número do IP da placa de Rede.

Faça o login aqui para ter acesso ao código.

Fornecendo algumas funções úteis

Forneço algumas funções úteis usando o WMI, para você estudar e se familiarizar com a escrita.

Veja nesta imagem, o formulário frmQuadroWMI, com as funções oferecidas:

Usando Access - Lista WMI

 

Baixe o arquivo exemplo

Bom estudo!


 

 


14 comentário(s)

aneves   02/06/2023 06:51:44

Caro Avelino Sampaio,

De todos os úteis conteúdos/exemplos colocados ao nosso dispor, considero este último - News 2 - como o mais valioso dos que tenho recebido.

Bem-haja e desejos de continuado sucesso.

Juan Pablo   31/01/2022 10:46:59

Mestre Avelino,

Por meio da função Environ é possível fazer o login no access usando os mesmos dados do login da rede windows?

Humberto Galvani   04/01/2022 15:47:21

Gostaria de saber se existe alguma forma de maiplular as variaveis de Ambiente por exemplo a Username atraves de comandos de VBA?

Gustavo   25/10/2021 12:31:30

Parabéns pelo artigo Avelino, me ajudou na função de backup do seu exemplo do Maestro, ele não estava reconhecendo o WinRar instalado no meu PC 64 bits e com o WinRar também 64 bits, a função original ele não reconhecia que ele estava instalado na pasta Program Files, somente reconhecia que tinha que estar na pasta Program Files (x86), utilizei a seguinte função:

ElseIf Len(Dir(Environ("ProgramW6432") & "\WinRar\WinRAR.EXE") & "") > 0 Then
strLocalWinRar = Environ("ProgramW6432")

E ele reconheceu o WinRar corretamente. Obrigado e parabéns mais uma vez pelo seu trabalho.

LEANDRA - RJ   21/08/2021 15:49:09

Parabéns pela organização e disponibilização de códigos tão úteis!

LEANDRA - RJ   21/08/2021 15:41:04

Ha muito tempo procurava uma função que retornasse o IP dentro do Access. Sua solução é 10!!

Avelino Sampaio   09/04/2021 10:40:26

Obrigado pela participação de todos!

Marcelo-Pr,

o que acontece ao abri o formulário frmQuadroWMI ?

No aguardo

Leozito Pedroso de Almeida   08/04/2021 20:06:12

muito bom excelente....

Marcelo-PR   08/04/2021 09:30:59

Só não consegui a "lista" - como faço? Mas pelo que vi é um código matador para o que se propõe.

Marcelo David   07/04/2021 00:56:13

Simplemente fantástico! Parabéns amigão!

Valdino   06/04/2021 16:08:34

Bem elaborado. Vale lembrar que as opções disponibilizadas na lista do Environ pode mudar entre as versões do SO e do Office, bem como entre um programa e outro da mesma versão do Office. A dias atrás elaborei um aplicativo para comparação entre as versões do Office nas diferentes versões do Windows e entre os aplicativos de mesma versão do Office. A lista pode variar entre 25 a 37 itens. Nesse aplicativo tambem utilizo WMI para retornar dados referentes aos SOs utilizados na pesquisa.

Eduardo Rubio   06/04/2021 15:03:54

muito bom mesmo...
sempre muito util...
obrigado

Márcio Melo -RJ   06/04/2021 13:50:03

Nossa, verifiquei o seu exemplo, tem muito mais informações, traz tudo detalhado. Nunca que imaginei que o VBA dava para fazer tudo isso, até me animo em voltar a tentar ir mais afundo nessa parte que vem de fora do ambiente. Você saberia me dizer se podemos também manipular as funções das OCX por exemplo a MSCOMM32.OCX que tem a finalidade de comunicar pela porta COM, já consegui fazer alguns testes em PC que tinha o C++ studio instalado, quando levei a outros PC´s mesmo registrando a OCX não funcionava, como que tivesse que registrar direitos o detalhe que o C++ do meu trabalho é legalizado, mais faltou algum procedimento para essa OCX saber disso.

Gostei muito dessa postagem! me faz sonhar além das minhas expectativas...

Sou mais Brasil!


Guilherme B. Pereira   06/04/2021 13:25:06

Mestre carioca Avelino!

FANTÁSTICO!!!!!!!!!!!!!!!!!!!

Sem palavras para definir o tão útil, é o exemplo em questão, dentre outras dezenas de igual capricho que você disponibiliza para a comunidade.

Meu forte e cordial abraço,
Gillherme


Envie seu comentário: