• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Dotinho

INFORMAÇÂO, Usar o WMI em vb.net

11 mensagens neste tópico

Boas, há algum tempo andava á procura disto, a neste forum encotrei um topico interessante sobre a temperatura do CPU, que usa o WMI.

Então para quem quiser tirar partido desta ferramenta, que é muito completa poir permite aceder a informaçãoes sobre todo o computador e windows, e é mais simples do que os performanceconters.

Para aceder aos dados tem que se fazer um query, identico ao do MsSql:

Dim searcher As New ManagementObjectSearcher("root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")

Depois para explorar as Propridades, que será o que vamos usar, tems que fazer um pequeno Explorador:

 For Each Obj As ManagementObject In searcher.Get()
                Label2.Text = Obj.Properties.Count
                Dim en = Obj.Properties.GetEnumerator
                While en.MoveNext
                    Label3.Text += en.Current.Name & "   " & en.Current.Value & vbNewLine
                End While
            Next

o exmplo mostra o numero de propriedades no Label2 e depois Escreve-as todas na Label3 na forma de "Nome" e "Valor".

Agora o mais complicado é saber como fazer os querys certos, para isso existe uma ferramente que se chama "Script Center" ou "The Scripting Guys" no endereço http://www.microsoft.com/technet/scriptcenter/default.mspx no separador "Scripts", assim podems escolher as categorias que quiserms, apenas temos que adaptar o codigo que lá está para o vb.net, que é muito simples..

Alguma correção ou sugestão, estejam á vontade.

cmps e bom fds

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como só agora é que testei o código surgio um probleminha.

É necessário fazer um Imports System.Management  ou não ?

É que se não fizer-mos algo do género o ManagementObjectSearcher e ManagementObject dao erro.

Ja tentei o imports acima referido mas não deu.

Sabes como posso resolver este probleminha ?  :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, desculpem, tem que importar a referencia system.managemente :(

tambem pensei nisso, mas não consegi descobrir como se poe lá um topico..pelo que tive a ler deve por-se na secção Wiki it, mas nao aparece nenhum botão para adicionar..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, desculpem, tem que importar a referencia system.managemente :)

Continua a dizer-me "type ManagementObjectSearcher is not defined"

Sabes o que posso fazer para resolver isto ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas não basta declarares o Import System.Managemente, tens mesmo que ir ao menu do projecto, depois ao separador References, e adicionar o System.Management completo que se encontra lá.

O que vem no standard do project é resumido e nao tem tudo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas não basta declarares o Import System.Managemente, tens mesmo que ir ao menu do projecto, depois ao separador References, e adicionar o System.Management completo que se encontra lá.

O que vem no standard do project é resumido e nao tem tudo.

Tens de fazer o import:

Imports System.Management

Mas também tens de adicionar a referencia: System.Management que está em:

Project Properties\References or vais a TreeView do projecto..(onde estão os ficheiros *.vb), seleccionas a opção "Show All Files" e Click em References e right click Add Reference..

Isto acontece porque esta classe não está acessível por omissão tens de a importar para puderes utilizar no projecto :)

Compr.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pessoal

quero colocar a idade de uma pessoa num textbox e filtrar o datagrid e mostrar a idade logo.

fiz um filtro ao datagrid para procurar o nome de uma pessoa mas kero para a idade de uma pessoa

filtrar nome : tbEquipamentosBindingSource.Filter = string.Format("Origem LIKE '%{0}%'", txtNome.Text);

filtrar idade ???? help

estou desenvolvendo em C# visual studio 2005 windows aplicacion

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pessoal

quero colocar a idade de uma pessoa num textbox e filtrar o datagrid e mostrar a idade logo.

fiz um filtro ao datagrid para procurar o nome de uma pessoa mas kero para a idade de uma pessoa

filtrar nome : tbEquipamentosBindingSource.Filter = string.Format("Origem LIKE '%{0}%'", txtNome.Text);

filtrar idade ???? help

estou desenvolvendo em C# visual studio 2005 windows aplicacion

Acho que não estás na area certa, o melhor á abrires um novo tópico e procurares por datagrid, porque existe alguns tópicos sobre o que queres no forum..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de fazer o import:

Imports System.Management

Mas também tens de adicionar a referencia: System.Management que está em:

Project Properties\References or vais a TreeView do projecto..(onde estão os ficheiros *.vb), seleccionas a opção "Show All Files" e Click em References e right click Add Reference..

Isto acontece porque esta classe não está acessível por omissão tens de a importar para puderes utilizar no projecto ;)

Compr.

Obrigado... Resolveu o problema.

Este projecto e' bastante util  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora