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

scorch

API Verificar a Temperatura do Computador

41 mensagens neste tópico

Boas, alguém sabe se o windows trás alguma API que permita verificar a temperatura do computador? Ou até se o Hardware trás? O meu computador é um portátil, um HP. É que agora no Verão ele aquece muito e já se desligou duas vezes por aquecer demais, e eu queria fazer uma app que me alertasse quando o computador atingisse uma determinada temperatura. :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Era fixe, também gostava de saber.

Tenho um Toshiba Tecra S4, mas não, pelo menos acho que não dá.

Fiz copy&paste do código num projecto novo, mas não compila, recebo um erro em: System.Management.ManagementObject, diz que não está definido e efectivamente não consigo fazer import, nem adicionar nas referências.

Procurei um bocado no google e encontrei um WMI Code Creator da Microsoft, corri e diz que esta classe não existe.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É impossivel fazer isso apenas usando VB.

Precisas de usar C/C++ para aceder ao sistema de temperatura ou usas a info fornecido pelo WMI se a tua motherboard suportar é claro.  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelas respostas. Eu estive a ver este post, e tentei esse código. Mas dá-me Access Denied numa MessageBox (a do Catch).

Alguém sabe uma solução?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alterei o nível de acesso do programa e já dá. Agora, só uma dúvida: qual a temperatura a que o computador se desliga?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alterei o nível de acesso do programa e já dá. Agora, só uma dúvida: qual a temperatura a que o computador se desliga?

O que fizeste para estar a dar ? nesse link o que eles dão a mim dá erro em todos os "management".

Para veres a temperatura a que se desliga o PC podes arranjar o sidebar do vista que tem a temperatura do processador(uso vistamizer) e veres qual a temperatura máxima atingida...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Adicionaste a Referência?

Vou ver esse widget. :)

EDIT: Podes-me dar o link?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Adicionei o código lá presente. Não fiz mais nada .

Queres o link do vistamizer ou apenas o sidebar ? o vistamizer é na minha opinião o melhor programa que adiciona os componentes do Vista para XP tendo várias opcões durante a instalação do programa onde uma delas é o sidebar com variadas skins.

Mas se quizeres apenas um sidebar também arranjo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OMG !

Então nesse caso se tiveres o sidebar activo deverá ter lá uma opcão para activares a temperatura do CPU

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OMG !

Então nesse caso se tiveres o sidebar activo deverá ter lá uma opcão para activares a temperatura do CPU

Yaa, e até todo cheio de animações :)

Alterei o nível de acesso do programa e já dá. Agora, só uma dúvida: qual a temperatura a que o computador se desliga?

Tens a certeza que é por causa da temperatura?

O teu pc é portátil ou fixo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora, só uma dúvida: qual a temperatura a que o computador se desliga?

Isso dependerá do processador. Verifica no site do fabricante as temperaturas máximas/recomendadas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Yaa, e até todo cheio de animações ;)

É o medidor de CPU? Mas isso só me dá a percentagem.

Tens a certeza que é por causa da temperatura?

Sim, porque só acontece isso quando ele fica quente (quando estou a jogar).

O teu pc é portátil ou fixo?

Portátil.

Isso dependerá do processador. Verifica no site do fabricante as temperaturas máximas/recomendadas.

Vou fazer isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É impossivel fazer isso apenas usando VB.

Lá tu não saberes fazer não quer dizer que seja impossível. ;)

Evita dizer o que não sabes excepto quando tenhas MESMO a certeza.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se precisares mesmo de ver a temperatura e os máximos até que a máquina se desligue (também tinha o mesmo problema e tive de fazer uma mesa refrigeradora) usa esta aplicação que é bem simples e mete as temperaturas no tray o que fica girito.

Isto até que consigas fazer tu um monitor de temperatura. Sei bem que dá mais gozo termos as nossas próprias ferramentas ;)

EDIT: E olha até o que diz lá mais em baixo:

Dynamic Link Libraries (DLLs) are supplied for both C++ (and other unmanaged languages) and .NET Framework 2.0, allowing easy access to the readings without having to write any shared memory related code.

For more information, please visit the Developers page.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lá tu não saberes fazer não quer dizer que seja impossível. ;)

Evita dizer o que não sabes excepto quando tenhas MESMO a certeza.

Então podes dizer-me como fazer apenas usando VB  :P

Podes começar já  :biggrin:

Temperatura não consegues apenas com VB !!!

O VB 2008 tem algumas limitações infelizes como já vi  :nono1:

No meu tópico de esconder programa do gestor de tarefas também não é possivel esconder um processo através do VB 2008 mas com vb6 já consigo  :)

O mesmo passa-se com esta dúvida da temperatura onde em C# consegues fazer, penso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O mesmo passa-se com esta dúvida da temperatura onde em C# consegues fazer, penso...

Pensas?

Eu tenho a funcionar em VB.NET2008. Em 10 minutos, a temperatura oscilou entre 65ºC e 77ºC

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já que conseguis-te podias meter aqui o código que utilizas-te, porque estou bastante interessado em saber como faze-lo  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já que conseguis-te podias meter aqui o código que utilizas-te, porque estou bastante interessado em saber como faze-lo  ;)

[*]Criei um projecto novo

[*]acrescentei uma class

[*]acrescentei a ref. Systme.Management

[*]gravei

[*]copiei o código que está no 1º link do debliu para a class

[*]crescentei três textbox

[*]e corrigi o código do Form1.vb para



Public Class Form1
    Private Temperaturas As New TemperaturaPC

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txbTempCPUMin.Text = 9999
        txbTempCPUMax.Text = 0
        txbTempCPU.Text = Temperaturas.GetCPUTemp(TemperaturaPC.TempFormat.Celsius)
        Compara()
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        txbTempCPU_C.Text = Temperaturas.GetCPUTemp(TemperaturaPC.TempFormat.Celsius)
        Compara()
    End Sub
    Private Sub Compara()
        If CDbl(txbTempCPUMin.Text) > CDbl(txbTempCPU.Text) Then
            txbTempCPUMin.Text = txbTempCPU.Text
        End If

        If CDbl(txbTempCPUMax.Text) < CDbl(txbTempCPU.Text) Then
            txbTempCPUMax.Text = txbTempCPU.Text
        End If
    End Sub
End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O VB 2008 tem algumas limitações infelizes como já vi  :nono1:

O VB ou Tu ? ;)

Agora a sério, o que consegues fazer em C# consegues fazer em VB.NET e é apenas preguiça ...fazes uma pesquisa na net e encontras centenas de páginas com exemplos do género, usando WMI.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dizer que "conseguia fazer com o VB6 e com a .NET não" é como dizer que era fácil de apagar ficheiros em linguagem Batch e agora com o .NET precisa de dar mais voltas.

OOP requer mais lógica mas é 1000 vezes mais organizado e correcto do que esse pseudo OOP a que gostam de chamar VB6.

Isto já foi discutido por aí no forum, mas C# e VB usam a mesma framework, logo, têm as mesmas capacidades.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Efectivamente, já vi em vários sítios (inclusive na microsoft) dizer que VB e C# são a mesma coisa.

Entretanto (porque precisei) encontrei um projecto feito em C#: http://www.codeproject.com/KB/cs/dxfreader.aspx que tentei converter para VB.NET (porque é o que uso para programar) e não consegui.

Já apaguei o projecto, mas no fim tinha 3 erros um deles era a dizer que um location não existia na class, mas em C# funciona sem erros de compilador.

Depreendo que haverá uma ou outra coisa que tem a ver com o cerne da linguagem que não permite ao VB e que na linguagem "mãe" permite ao C#, mas posso estar a dizer disparates.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O VB ou Tu ? :P

Agora a sério, o que consegues fazer em C# consegues fazer em VB.NET e é apenas preguiça ...fazes uma pesquisa na net e encontras centenas de páginas com exemplos do género, usando WMI.

So tenho o 1º ano de VB 2008, não sejas mau para mim  ;)

As minhas limitações poderam resultar de um bom futuro meu se eu me aplicar  :biggrin:

Estou aqui para aprender  :biggrin: :smoke:

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