Você está aqui: C# ::: Dicas & Truques ::: WMI (Windows Management Instrumentation) |
||||
O que é WMI (Windows Management Instrumentation) e como usar esta infraestrutura em seus programas C#Quantidade de visualizações: 14232 vezes |
||||
O WMI (Windows Management Instrumentation) é a infraestrutura para o gerenciamento de dados e operações em sistemas baseados no Windows. Por meio do WMI nós podemos obter várias informações a respeito de todo o hardware no sistema, incluindo: a) Número de série, tamanho (capacidade) e espaço livre em drives; b) Número de série, velocidade de clock e tipo de soquete da CPU; c) Endereço MAC do adaptador de rede (Network Adapter MAC Address); d) Gateway padrão do adaptador de rede (Network Adapter Default Gateway); e) Muitas outras informações úteis para o desenvolvimento de programas que investigam ou atualizam informações relacionados a harware. O WMI foi projetado para programadores que usam C/C++, o Microsoft Visual Basic ou uma linguagem de script que tenha um motor (engine) no Windows e que nos permita lidar com objetos Microsoft ActiveX. Nesta dica mostrarei como podemos usar WMI a partir de aplicações C#. As informações contidas nas várias classes do WMI podem ser obtidas com o uso do WQL (SQL for WMI). Esta é a WMI Query Language, um sub-conjunto do American National Standards Institute Structured Query Language (ANSI SQL) ? com algumas diferenças semânticas. A classe WMI que abordarei nesta dica é a Win32_LogicalDisk. Esta classe representa uma fonte de dados que é um apelido para um dispositivo de armazenagem local em um computador usando Windows. Por meio desta classe podemos obter informações interessantes, tais como o número serial do HD, o espaço inicial, o espaço disponível, tipo do drive, etc. O primeiro procedimento que vamos realizar é a obtenção do número de série do HD. Veja:
Antes de executar este exemplo verifique se você realmente adicionou a referência System.Management ao seu projeto. Note que a linha: MessageBox.Show(disk.GetPropertyValue("VolumeSerialNumber").ToString()); pode ser substituída por: MessageBox.Show(disk["VolumeSerialNumber"].ToString()); Para verificar se o código C# realmente retornou o número de série correto, abra uma janela de comando e dispare:
Você terá um resultado parecido com:
Para obtermos o nome do volume só precisamos fazer uma pequena modificação no código. Veja:
|
||||
![]() |
||||
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |