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: 13979 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: private void button3_Click(object sender, EventArgs e){ // using System.Management; // vamos obter o número de série (serial number) do drive C string drive = "C"; // vamos criar um novo objeto da classe ManagementObject // informando que queremos obter informações a respeito do drive C ManagementObject disk = new ...... Restante do código disponível na Área de Apoiadores do site 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: vol ...... Restante do código disponível na Área de Apoiadores do site Você terá um resultado parecido com: C:Documents and SettingsOsmar>vol O volume na unidade C é LABORATORIO ...... Restante do código disponível na Área de Apoiadores do site Para obtermos o nome do volume só precisamos fazer uma pequena modificação no código. Veja: private void button3_Click(object sender, EventArgs e){ // using System.Management; // vamos obter o nome de volume (Volume Name) do drive C string drive = "C"; // vamos criar um novo objeto da classe ManagementObject // informando que queremos obter informações a respeito do drive C ManagementObject disk = new ...... Restante do código disponível na Área de Apoiadores do site |
![]() |
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 |