Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
du.facc

Software de leitura de temperatura

Recommended Posts

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.

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

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

    Compartilhar este post


    Link para o post
    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.

    • Curtir 1

    Compartilhar este post


    Link para o post
    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 ?

    .

    Editado por Henrique - RJ

    Compartilhar este post


    Link para o post
    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.

    Editado por hacker_wap
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×