Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 11-08-2009, 14.18.00   #1
mandrak
Junior Member
 
Registrato: 30-03-2009
Loc.: Genova
Messaggi: 61
mandrak promette bene
Misura della temperatura del processore con vb6

Salve a tutti.
Ho altro quesito da chiedere.
Mi piacerebbe creare con vb6 o Vb5 un softwarino che legge
la temperatura del processore se la scheda madre lo prevede.
So che ci sono già pronti e anche Free, ma sarebbe una mia
piccola soddisfazione crearne uno da me.
Da dove devo iniziare ?
Quali sono i registri da consultare e come ?
magari un piccolo esempio ...
mandrak non è collegato   Rispondi citando
Vecchio 01-09-2009, 22.58.15   #2
chiccogio
Newbie
 
Registrato: 01-09-2009
Messaggi: 3
chiccogio promette bene
Ho trovato in giro su internet questo...forse potrebbe essere di aiuto?

Imports System
Imports System.Management

Public Class frmMain

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim searcher As New ManagementObjectSearcher("root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")

For Each queryObj As ManagementObject In searcher.Get()
Dim temp As Double = CDbl(queryObj("CurrentTemperature"))
temp = (temp - 2732) / 10.0
MessageBox.Show(temp.ToString)
Next

Catch ex As ManagementException
MessageBox.Show(ex.Message)
End Try

End Sub

End Class
___________________________________

Consigli di utilizzo sui strumenti di misura e Dinamometri
chiccogio non è collegato   Rispondi citando
Vecchio 01-09-2009, 23.31.59   #3
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
"Quali sono i registri da consultare e come ?"

L'esempio che hai riportato non è proprio in Vb5/6, anche se a WMI potresti accedere comunque attraverso l'utilizzo di un componente aggiuntivo ...
Certo, WMI è pratico ma la domanda rimane quella lassù
LoryOne non è collegato   Rispondi citando
Vecchio 02-09-2009, 09.02.42   #4
Semi.genius
Guest
 
Messaggi: n/a
Dipende dal driver della scheda madre, la lettura della temperatura...non c'è una API standard. Bisogna importare la funzione specifica dalla dll (stile asus.dll ha GetCPUTemperature)
  Rispondi citando
Vecchio 02-09-2009, 09.48.39   #5
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Mmm ... l'esempio fa accesso ad ACPI ... al BIOS.
A quale indirizzo punta MSAcpi_ThermalZoneTemperature ?
Certo, hai ragione anche tu Semi.genius ... Se Asus ha predisposto una dll specifica per le sue schede madri, il reversing della chiamata GetCPUTemperature potrebbe forse rivelarcelo ?
E se ACPI fosse uno standard ? Qualunque scheda madre che lo supporti potrebbe fornirci la lettura della temperatura , ed in questo caso WMI potrebbe avere davvero senso ...
LoryOne non è collegato   Rispondi citando
Vecchio 02-09-2009, 09.59.13   #6
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Anche secondo me l'uso di WMI ha un senso in questo caso, molti software di rilevazione come il ben noto SpeedFan ne fanno uso appoggiandosi anche alle API del controllo delle performance di windows (perfos.dll)

Appoggiarsi ad un driver specifico del produttore dell'hardware implica dover gestire chiamate che possono essere diverse per modello di scheda madre, inoltre alle volte possono differire anche tra revisioni degli stessi driver.
Lo standard ACPI è ormai largamente supportato dall'hardware e il sistema dispone dei relativi performance coutners per cui a mio avviso una query wmi è senz'altro da preferire...
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 02-09-2009, 11.35.36   #7
mandrak
Junior Member
 
Registrato: 30-03-2009
Loc.: Genova
Messaggi: 61
mandrak promette bene
Salve a tutti.
Cos'è WMI ?
E' un software aggiuntivo da installare e come si usa ?
mandrak non è collegato   Rispondi citando
Vecchio 02-09-2009, 11.46.40   #8
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
WMI ovvero Windows Management Instrumentation (strumentazione gestione windows) è un'infrastruttura integrata nel sistema operativo che, attraverso un processo host (wmiprvse) - wmi provider service permette di eseguire interrogazioni a livello programmatico sul sistema utilizzando una sintassi molto simile a t-sql per sottoporre query riguardanti la configurazione hardware e software del sistema.

Praticamente è un servizio integrato che ti fornisce informazioni sul sistema.
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 02-09-2009, 12.00.57   #9
Semi.genius
Guest
 
Messaggi: n/a
uhm..siete sicuri che con WMI si possa ricavare la temperatura? iirc, si può sapere le informazioni sul sensore, ma il valore "CurrentReading" non lo popola...
http://msdn.microsoft.com/en-us/libr...93(VS.85).aspx

..come è scritto qui...
  Rispondi citando
Vecchio 02-09-2009, 12.19.40   #10
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Questo codice :

Codice:
        Try

            Dim searcher As New ManagementObjectSearcher("root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")
            For Each queryObj As ManagementObject In searcher.Get()
                Dim temp As Double = CDbl(queryObj("CurrentTemperature"))
                temp = (temp - 2732) / 10.0
                MessageBox.Show(temp.ToString)
            Next
        Catch err As ManagementException
            MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
        End Try
Già postato in precedenza funziona, almeno sul mio sistema, di solito wmi si interfaccia con il bios per fare queste rilevazioni (smb) che è implementato dal driver del produttore della scheda madre o dai driver standard microsoft per cui la comodità è che in questo caso wmi fornisce l'astrazione del dato.
Chiedo scusa all'utente che ha iniziato il thread per non aver postato codice vb5 o vb6 se non ricordo male per l'interazione wmi occorre un componente aggiuntivo.
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 02-09-2009, 15.00.12   #11
mandrak
Junior Member
 
Registrato: 30-03-2009
Loc.: Genova
Messaggi: 61
mandrak promette bene
Ci mancherebbe altro, vi ringrazio tutti.

Per provare il codice che hai messo a disposizione occorre prima installare WMI presumo.
Usando vb5&6 devo scaricare un particolare file di installazione o è sufficiente entrare nel Sito della Microsoft ?
Qual'è il link più giusto ?
mandrak non è collegato   Rispondi citando
Vecchio 02-09-2009, 15.04.21   #12
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
WMI non si installa, è integrato in windows...
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 02-09-2009, 15.17.57   #13
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Con il metodo getobject di vb6 recuperi l'"istanza" di wmi su cui fare la query, guarda questo link e magari prova direttamente dato che (se non ricordo male) alcuni provider sono preinstallati nel sistema, probabilmente non avrai bisogno di librerie aggiuntive

http://www.eggheadcafe.com/tutorials...dows-mana.aspx

Se invece l'istruzione getobject ritorna errore oppure Nothing allora occorre cercare una libreria di interfacciamento per wmi con vb.
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 02-09-2009, 16.32.11   #14
mandrak
Junior Member
 
Registrato: 30-03-2009
Loc.: Genova
Messaggi: 61
mandrak promette bene
L'esempio che è scritto sul Link funziona.
Mi restituisce l'elenco dei programmi (processi) in esecuzione nella macchina.
Ma come faccio ad adattarlo alle mie esigenze ?
Mi sento molto ignorante sull'argomento.
mandrak non è collegato   Rispondi citando
Vecchio 02-09-2009, 16.41.55   #15
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Bene, vuol dire che non hai bisogno di provider aggiuntivi in quanto la tua vb virtual machine lo include già...

Per il codice, devi fare un porting tra vb.net e vb6, viene una cosa simile a questa:

Codice:
dim coltemp
dim objtemp
 
' forse anche così : 
' Set coltemp = GetObject("Winmgmts:root\WMI").ExecQuery("SELECT * FROM MSAcpi_ThermalZoneTemperature ")
Set coltemp = GetObject("Winmgmts:").ExecQuery("SELECT * FROM MSAcpi_ThermalZoneTemperature ")

For Each objtemp In colProcessList
    List1.AddItem "Temp =" & objtemp.CurrentTemperature
Next

' set oggetti = nothing

End Sub
Non l'ho provato, controlla le proprietà dell'oggetto objtemp restituito dalla query...
P8257 WebMaster non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Crociera virtuale intorno al mondo, unico bagaglio... fantasia! Lionsquid Chiacchiere in libertà 1492 24-04-2009 08.08.28
revoca dello Status di Obiettori di Coscienza top gun Chiacchiere in libertà 101 12-09-2005 18.10.47
BUONA PASQUA , celebrazione di un evento. Giorgio Drudi Chiacchiere in libertà 78 27-03-2005 12.18.05
beep al boot maefe Hardware e Overclock 6 08-11-2003 11.06.56

Orario GMT +2. Ora sono le: 20.30.16.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.