Ir ao conteúdo
  • Cadastre-se

Software de leitura de temperatura


du.facc

Posts recomendados

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.

Link para o comentário
Compartilhar em outros sites

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?

Link para o comentário
Compartilhar em outros sites

  • Moderador

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.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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 ?

.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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...