venerdì 10 aprile 2026

C# get serial number computer with ManagementObjectSearcher

Tramite la classe ManagementObjectSearcher possiamo rilevare il numero seriale del computer, con il linguaggio di programmazione C#.

Aggiungiamo al progetto tramite Nuget, il riferimento a "System.Management", in modo che possiamo utilizzare la classe "ManagementObjectSearcher".

Aggiungiamo il namespace per utilizzare le classi di questo componente, in alto, sopra ad ogni dichiarazione, inseriamo il seguente codice.

C#

using System.Management;



Di seguito la funzione che restituisce il serial number, utilizzando una ricerca nelle informazioni del bios.

C#

private string GetSerialNumberComputer()

 {

     string numeroSeriale = string.Empty;

 

     //Ricerca il seriale del computer utilizzando WMI (Windows Management Instrumentation)

     ManagementObjectSearcher MosQuery = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BIOS");

     foreach (ManagementObject elemento in MosQuery.Get())

     {

         numeroSeriale = elemento["SerialNumber"]?.ToString() ?? "sconosciuto";

     }

 

     return numeroSeriale;

 }







Qui di seguito il codice per richiamare la funzione dall'evento click di un pulsante di un progetto Windows Application.

C#

private void BtnSerialNumber_Click(object sender, EventArgs e)

{

    try

    {

              

        string serialNumber = GetSerialNumberComputer();

        MessageBox.Show("Numero Seriale: " + serialNumber);

    }

    catch (Exception ex)

    {

        MessageBox.Show("Error: " + ex.Message);

    }

}






giovedì 9 aprile 2026

Android rintracciare il proprio dispositivo

 

Rintracciare il dispositivo Android

Per coloro che hanno un dispositivo dotato del sistema operativo Android, possono rintracciare il proprio dispositivo o dispositivi, tramite il sito Google.

Dopo aver configurato il dispositivo in modo che sia rintracciabile, come aver abilitato la localizzazione, basterà andare sul sito Find Hub  https://www.google.com/android/find/ per sapere dove si trova.

Un modo molto utile per rintracciarlo in caso di perdita o furto o altro.

Inoltre è possibile far emettere un suono, bloccarlo, resettarlo a livello di fabbrica (con la perdita di tutti i dati, cancellazione totale).




mercoledì 8 aprile 2026

Sito di informazione sul sistema operativo Windows woshub

Il sito https://woshub.com/ in lingua inglese, è un portale nel quale trovare notizie e consigli sull'utilizzo del sistema operativo Windows.
Il sito è costantemente aggiornato e fornisce interessante materiale sul sistema operativo Windows.


martedì 7 aprile 2026

C# combobox maxdropdownitems not working

Quando si sviluppa un’applicazione di tipo Windows Forms, in .NET, può capitare che il settaggio per visualizzare gli elementi nell’apertura della Combobox, non funziona e visualizza tutti gli elementi.
Impostando la proprietà “IntegralHeight” a false, si risolve tale problematica.
Di seguito il frammento di codice da utilizzare nell’evento load della form, dopo il caricamento dei dati nella combobox.

C#

private void form1_Load(object sender, EventArgs e)

 {

CaricaDati();

      combobox1.IntegralHeight = false;

 

 

}


PowerShell Ottenere il numero seriale del pc

 

Ottenere il seriale tramite PowerShell

Il seguente comando illustra come rilevare il numero seriale del proprio pc, tramite istruzione a riga di comando per PowerShell.

Dopo aver aperto il Prompt di PowerShell, digitate il seguente comando.

Get-WmiObject Win32_BIOS | Select-Object SerialNumber

lunedì 6 aprile 2026

C# rilevare la risoluzione video .NET 10

In questo frammento di codice in .NET 10 con il linguaggio di programmazione C#, rileva la risoluzione video in un progetto di tipo Windows Forms. Utilizzando la classe Screen, possiamo ottenere anche informazioni di quanti Monitor abbiamo installato.


C#

var risoluzione = Screen.PrimaryScreen?.Bounds;

MessageBox.Show($"Risoluzione Monitor: {risoluzione?.Width} x {risoluzione?.Height} pixel");


Nel caso che vogliamo sapere invece la risoluzione per quanto riguarda l'assenza della barra di Windows, il frammento di codice per ottenere tali dati, è il seguente.

C#

var risoluzione = Screen.GetWorkingArea(this);

MessageBox.Show($"Area di lavoro: { risoluzione.Width} x { risoluzione.Height} pixel");


C# rilevare le informazioni del disco rigido del proprio pc con .NET 10

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/csharp-rilevare-informazioni-del-disco-rigido-del-proprio-pc-dotnet-10


In questo articolo vedremo come estrapolare informazioni del nostro computer, in particolare per conoscere dati importanti riguardante il nostro hard disk o SSD.

Senza l’utilizzo di librerie di terze parti, scopriremo tramite la classe “ManagementObjectSearcher” informazioni che ci possono tornare utile sulla memoria del computer.

Il progetto sarà di tipo Windows forms con il linguaggio di programmazione C#, tramite l’ambiente di sviluppo “Visual Studio 2026 Community” con l’ultima versione del Framework .Net, nel momento in cui stiamo scrivendo è la 10.


Creazione del progetto


Si crea un nuovo progetto di tipo Windows Application, impostando come versione del Framework la 10, al momento presente solo questa per l’ambiente di sviluppo Visual Studio 2026.

Dopo aver creato il progetto, nella form, aggiungiamo alcuni controlli, in particolare tre controlli Label, un controllo cornice e tre controlli textbox, il tutto come mostrato in figura 1.


.NET informazioni disco rigido
Figura 1  - Il posizionamento dei controlli

Nella prima casella di testo, impostiamo la proprietà “Name” con il valore “txtModello”, la seconda, impostiamo il valore della proprietà “Name” con “txtNumeroSeriale”, ed infine, l’ultima casella di testo, con il valore “txtStato” .

Aggiungiamo al progetto il riferimento a “System.Managament”, che è un libreria di Microsoft che in passato era tra i riferimenti di progetto, per rilevare informazioni hardware, tra cui quelle che occorrono a noi. Aggiungiamo il riferimento tramite Nuget, il tutto come mostrato in figura 2.


.NET informazioni disco rigido
Figura 2 - Il riferimento al componente

Stesura del codice

Terminata la creazione del progetto, dobbiamo scrivere il codice per estrapolare le informazioni. Passiamo in visualizzazione codice, ed in alto sopra ad ogni dichiarazione, aggiungiamo lo spazio dei nomi di questo riferimento, di seguito si riporta il frammento di codice della suddetta dichiarazione.


C#

using System.Management;


In una parte qualsiasi della classe form, dopo il costruttore, scriviamo una funzione, che verrà richiamata nell’evento load del form, con il quale rileviamo informazioni del nostro disco, quale modello, numero seriale e lo stato. 

Tramite la classe ManagementObjectSearcher, passando nel costruttore la select a “Win32_DiskDrive” che permette di rilevare tutte le informazioni sul disco rigido, tramite il metodo “get” otteniamo uno o più oggetti (in base a quanti sono i dischi sul pc) di tipo “ManagementObject”, con il quale abbiamo informazioni sul disco.

Di seguito si riporta il frammento di codice delle suddette operazioni. 


C#

private void GetInformazioniMemoriaSSDHardkisk()

 {

     try

     {

         ManagementObjectSearcher mosDiskDrive = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

 

         foreach (ManagementObject disco in mosDiskDrive.Get())

         {

             string modello = disco["Model"]?.ToString() ?? "N/A";

             string numeroSeriale = disco["SerialNumber"]?.ToString() ?? "N/A";

             string stato = disco["Status"]?.ToString() ?? "N/A";

 

             txtModello.Text += modello+ "\r\n" ;

             txtNumeroSeriale.Text +=    numeroSeriale +"\r\n";

             txtStato.Text +=  stato+ "\r\n";

                    

         }

 

 

     }

     catch (Exception ex)

     {

         MessageBox.Show("Errore: " + ex.Message);

     }

 }


Passiamo in visualizzazione grafica e facciamo click in ogni parte della form, in modo che passiamo in visualizzazione codice dell’evento load della form. In questo metodo viene invocato la funzione appena creata, di seguito si riporta il frammento di codice.


C#

  private void FrmInformazioniPC_Load(object sender, EventArgs e)

 {

     GetInformazioniMemoriaSSDHardkisk();

 }


Nel caso che vogliamo sapere la capacità del disco, tramite la proprietà size possiamo rilevare tale dato.

Di seguito si riporta una funzione, che restituisce la dimensione e riportando in forma abbreviato l'unità di misura (Gigabyte o terabyte).


C#

    string GetSpazioTotale(ulong dimensione)

    {

 

        string spazioTotale;

        if (dimensione != 0)

        {

            try

            {

                ulong sizeBytes = Convert.ToUInt64(dimensione);

                double sizeGB = sizeBytes / (1024.0 * 1024.0 * 1024.0);

                if (sizeGB >= 1000.0)

                {

                    double sizeTB = sizeGB / 1024.0;

                    spazioTotale = $"{sizeTB:F2} TB";

                }

                else

                {

                    spazioTotale = $"{sizeGB:F2} GB";

                }

            }

            catch

            {

                spazioTotale = "N/A";

            }

        }

        else

        {

            spazioTotale = "N/A";

        }

 

return spazioTotale;

 

 

    }



Ora non resterà che modificare la nostra funzione, aggiungendo la riga di codice per richiamare questa funzione.

Di seguito si riporta la riga modifica.


C#

string spazioTotale = disco["Size"] != null ? GetSpazioTotale(Convert.ToUInt64(disco["Size"])) : "N/A";


Di seguito si riporta la funzione completa con la nuova modifica.


C#

private void GetInformazioniMemoriaSSDHardkisk()

 {

     try

     {

         ManagementObjectSearcher mosDiskDrive = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

 

         foreach (ManagementObject disco in mosDiskDrive.Get())

         {

             string modello = disco["Model"]?.ToString() ?? "N/A";

             string numeroSeriale = disco["SerialNumber"]?.ToString() ?? "N/A";

             string stato = disco["Status"]?.ToString() ?? "N/A";

             string spazioTotale = disco["Size"] != null ? GetSpazioTotale(Convert.ToUInt64(disco["Size"])) : "N/A";

 

 

 

             txtModello.Text += modello + "\r\n";

             txtNumeroSeriale.Text += numeroSeriale + "\r\n";

             txtStato.Text += stato + "\r\n";

 

         }

 

 

     }

     catch (Exception ex)

     {

         MessageBox.Show("Errore: " + ex.Message);

     }

 }



Nel caso che desideriamo conoscere tutte le proprietà di “Win32_DiskDrive”, potremmo effettuare una ricerca tra tutti gli elementi, e rilevare l’eventuale valore per ciascuno.

Il ciclo avviene nella proprietà “Proprties” dell’oggetto ManagamentObject con il quale estrapoliamo il nome ed il valore della proprietà.

Di seguito si riporta una funzione che estrapola tutti gli elementi con i relativi valori e li visualizza a video.


C#

private void VisualizzaTutteProprieta()

{

    var MOsearcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

    foreach (ManagementObject elemento in MOsearcher.Get())

    {

        var sb = new StringBuilder();

        sb.AppendLine("Proprietà disponibili per Win32_PhysicalMedia:");

 

        foreach (PropertyData prop in elemento.Properties)

        {

            string name = prop.Name;

            string value;

            try

            {

                value = prop.Value?.ToString() ?? "<null>";

            }

            catch (Exception ex)

            {

                value = $"<errore lettura: {ex.Message}>";

            }

            sb.AppendLine($"{name}: {value}");

        }

 

               

        MessageBox.Show(sb.ToString(), "Win32_PhysicalMedia");

    }

}


Possiamo richiamare la funzione nell’evento load della form, di seguito il frammento di codice delle suddette operazioni.



C#

private void FrmInformazioniPC_Load(object sender, EventArgs e)

{

    VisualizzaTutteProprieta();

    GetInformazioniMemoriaSSDHardkisk();

}



Conclusioni

L’articolo ha fornito al lettore istruzioni su come rilevare le informazioni del proprio pc, in un progetto di tipo Windows Application, con il linguaggio di programmazione C#. Tramite le varie classi presenti nello spazio dei nomi “System.Management”, possiamo rilevare informazioni utili sulle varie componenti sistema operativo Windows, in questo caso del disco rigido.  Diversi gli scenari che si aprono come la realizzazione di  applicazioni informativi sull’hardware o per gestire i progetti estrapolando informazioni sull’hardware, come per esempio rilevare il seriale del disco rigido, per una gestione delle licenze più rigida e mirata.