Ir ao conteúdo

Software de leitura de temperatura


du.facc

Posts recomendados

Postado

Boa noite, estou postando no fórum de C++ por ser mais fácil de fazer, mas talvez eu vá criar em VB, não sei ainda...

Independente disto, alguém saberia como programas tipo o EVEREST captam a temperatura do PC?

Eu quero fazer um programa e nele eu iria usar dados como a temperatura... Como tenho acesso a este dado, sem requerer ao everest? quero que meu programa seja independente,

Obrigado a todos.

  • Moderador
Postado

Ola,

posso estar errado mas a temperatura, velocidade e outras informações da cpu estão gravadas nos registradores da mesma. Você talvez precisaria usar assembly para ler esses registradores.. Agora como fazer isso não sei.

Postado
Ola,

posso estar errado mas a temperatura, velocidade e outras informações da cpu estão gravadas nos registradores da mesma. Você talvez precisaria usar assembly para ler esses registradores.. Agora como fazer isso não sei.

Fiquei sabendo que o irmão do meu amigo é formado Mestre em programação, ele não me ajudou mas me deu uma dica que talvez clareie as idéias...

Ele disse que se o 'tal' EVEREST roda no windows, e me dá acesso a essas informações, então o windows TEM essa informação....disse que talvez consiga numa biblioteca bem específica do win....o que acha?

  • Moderador
Postado

Bom... não sei como o everest( aida64 atualmente) funciona. ele pode muito bem ter sido implementado com assembly em algum blocos.. se o C ou C++ permitir rodar trechos em outra linguagem.. eu realmente não conheço C ou C++.

Minha resposta está baseada nas pesquisas que fiz no google.

Mas, o irmão de seu amigo, pode estar certo.. pensando na lógica, o windows tem uma info completa do seu hardware que podes achar em: Menu iniciar, Acessórios, Ferramentas do Sistema, Informações do Sistema. porém ali não tem temperaturas..

Então provavelmente Ou existe alguma biblioteca que ajuda implementar para pegar as temperaturas Ou foi feita em assemby como li nas pesquisas.

Postado

Provavelmente pesquisando a respeito da API do Windows você encontre algo para resolver este problema, pesquise um pouco mais, e com paciência aqui no fórum, não me lembro bem mas acho que já li algo do tipo por aqui, ou em outro fórum(acho que foi aqui mesmo).

Postado

O windows não tem uma api para isso, para conseguir esse tipo de informação você vai precisar trabalhar em "Kernel Mode" com drivers e a forma de capturar essa informação é dependente do hardware/fabricante.

O máximo que você vai conseguir usando a api do windows é usar a classe MSAcpi_ThermalZoneTemperature do WMI.


strServer = "."

Set objWMI = GetObject("winmgmts://" & strServer & "/root\WMI")
Set objInstances = objWMI.InstancesOf("MSAcpi_ThermalZoneTemperature",48)

For Each objInstance in objInstances
WScript.Echo objInstance.getObjectText_
Next

Salve esse código em um arquivo *.vbs e execute ele com direitos administrativos caso contrario vai gerar um erro.

Você vera um campo CurrentTemperature que eu não sei de onde é, mais esta em decimos de Kelvin.

Aqui você encontra em uma das respostas um exemplo em C++ que usa a mesma classe.

Postado
O windows não tem uma api para isso, para conseguir esse tipo de informação você vai precisar trabalhar em "Kernel Mode" com drivers e a forma de capturar essa informação é dependente do hardware/fabricante.

O máximo que você vai conseguir usando a api do windows é usar a classe MSAcpi_ThermalZoneTemperature do WMI.


strServer = "."

Set objWMI = GetObject("winmgmts://" & strServer & "/root\WMI")
Set objInstances = objWMI.InstancesOf("MSAcpi_ThermalZoneTemperature",48)

For Each objInstance in objInstances
WScript.Echo objInstance.getObjectText_
Next

Salve esse código em um arquivo *.vbs e execute ele com direitos administrativos caso contrario vai gerar um erro.

Você vera um campo CurrentTemperature que eu não sei de onde é, mais esta em decimos de Kelvin.

Aqui você encontra em uma das respostas um exemplo em C++ que usa a mesma classe.

Aqui deu erro na linha 6 esse código, origem: null ( Windows XP Pro SP2 ).

Teria um código para ver as voltagens ?

.

Postado

Como eu disse anteriormente precisa de direitos administrativos caso contrario esse metodo objWMI.InstancesOf("MSAcpi_ThermalZoneTemperature",48) retorna null ocasionando o erro no for each, infelizmente não uso mais o xp e não lembro como elevar os privilégios nele.

O resultado seria semelhante a esse.

MSAcpi_ThermalZoneTemperature.jpg

https://dl.dropbox.com/u/1227623/Imagens/Outros/MSAcpi_ThermalZoneTemperature.jpg

Quanto a tensão, a do processador pode ser pega assim.


strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
For Each objItem in colItems
Wscript.Echo objItem.getObjectText_
Next

Salve em um arquivo *.vbs e execute, esse não precisa de direitos administrativos.

Quanto a outros dispositivos, provavelmente também vai necessitar de um driver e ser dependente de hardware e fabricante.

Postado
Como eu disse anteriormente precisa de direitos administrativos caso contrario esse metodo objWMI.InstancesOf("MSAcpi_ThermalZoneTemperature",48) retorna null ocasionando o erro no for each, infelizmente não uso mais o xp e não lembro como elevar os privilégios nele.

O resultado seria semelhante a esse.

MSAcpi_ThermalZoneTemperature.jpg

https://dl.dropbox.com/u/1227623/Imagens/Outros/MSAcpi_ThermalZoneTemperature.jpg

Quanto a tensão, a do processador pode ser pega assim.


strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
For Each objItem in colItems
Wscript.Echo objItem.getObjectText_
Next

Salve em um arquivo *.vbs e execute, esse não precisa de direitos administrativos.

Quanto a outros dispositivos, provavelmente também vai necessitar de um driver e ser dependente de hardware e fabricante.

O que eu queria era ter uma ideia de como aparece e pela sua imagem já deu para ver.

Obrigado

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!