Oppure

Loading
24/07/21 20:00
Valcars92
Salve a tutti eccomi dinuovo a rompervi le scatole xD..... Come da titolo ho un errore con il System.Management
In pratica ho cercato di fare un programma che mi stampasse a video la temperatura della CPU ovviamente leggendo qualche guida ho letto che bisognava aggiungere il riferimento System.Management e non trovandolo lo aggiunto da Nuget non credo sia quello il problema cmq ho avviato anche il programma come amministratore e nulla mi da sempre lo stesso errore...
ecco lo script

using System;
using System.Management;

namespace temperaturaCPU
{
    class Program
    {
        static void Main(string[] args)
        {
            Double temperature = 0;
            String instanceName = "";
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature");

            foreach (ManagementObject obj in searcher.Get())
            {
                temperature = Convert.ToDouble(obj["CurrentTemperature"].ToString());
                // Convert the value to celsius degrees
                temperature = (temperature - 2732) / 10.0;
                instanceName = obj["InstanceName"].ToString();
            }
            
            Console.WriteLine(temperature);

            
            Console.WriteLine(instanceName);
        }
    }
}



Ecco alcuni screen del pacchetto e dell'errore
ibb.co/…
ibb.co/…

Non vorrei che il problema sia il framework che uso che è se non erro 3.2? mentre ora sto vedendo che vicino al pacchetto invece c'è scritto 5.0 forse dovrei usare il framework 5.0?
Attendo risposte e scusatemi come sempre per il disturbo :P


24/07/21 20:38
Thejuster
Credo proprio di sì.
Installa il framework che ti viene chiesto
mire.forumfree.it/ - Mire Engine
C# UI Designer
24/07/21 21:15
Valcars92
umh niente da fare...... anche creando un nuovo progetto con il framework 5.0 mi da sempre lo stesso errore....... sto cercando un pò in internet ma non trovo proprio nulla...... :(

:-|
24/07/21 21:32
Carlo
Solo le nuove CPU supportano la lettura della temperatura con System.Management e gli errori che incontrerai cambiano da marca a modello di CPU che stai usando.
soluzioni:
1) trovi la libreria che supporta la tua CPU
2) scarichi i sorgenti in C# di OpenHardwareMonitor: github.com/openhardwaremonitor/…

Al link che ti ho mostrato, sul pulsante verde Code, scarichi lo zip, dezippi dove vuoi la cartella: openhardwaremonitor-master
lanci: OpenHardwareMonitor.sln
la soluzione è una libreria di classi non puoi avviarla, devi scegliere compila soluzione sotto a compila, in base a come hai compilato in release o debug, troverai l'eseguibile nalla cartella corrispondente.
Oppure puoi impostare come oggetto d'avvio: OpenHardwareMonitor (VisualStudio deve essere eseguito come amministratore)
OpenHardwareMonitor supporta svariate CPU, lanciando l'eseguibile creato, controlla che sul tuo pc i valori di tuo interesse siano letti correttamente.

Per usare le classi di tuo interesse nei tuoi progetti ti dovrai divertire un po'
Ultima modifica effettuata da Carlo 24/07/21 21:45
in programmazione tutto è permesso
24/07/21 21:50
Valcars92
grazie mille Carlo leggerò un poco il codice e vedrò come utilizzarlo...intanto ho provato ad avviare il programma e funziona senza problemi ora devo capire come far funzionare il mio :E...
grazie ancora