venerdì 14 marzo 2025

C# .Net 9 Utilizzo delle variabili d’ambiente

Introduzione

In questo articolo vedremo come gestire le variabili di sistema che possiamo utilizzare nei nostri progetti.
Vedremo come in ambiente “Windows Application”, possiamo leggere, aggiungere, cancellare le variabili d’ambiente, tramite i vari metodi messi a disposizione dalla classe “Environment”.

Creazione del progetto

Tramite l’ambiente di sviluppo Visual Studio 2022 Community, si crea un nuovo progetto di tipo Windows Application, con la versione del Framework .Net 9. Una volta creato il progetto, aggiungiamo nella form un controllo di tipo “DatagridView”, tre pulsante, il tutto come mostrato in figura 1.


Figura 1 – La form la form per le varie operazioni sulle variabili d’ambiente.


Figura 1 – La form la form per le varie operazioni sulle variabili d’ambiente.



Stesura del codice

Terminata la creazione della nostra form per fare le varie prove, facciamo doppio click sulla form, in modo da passare in visualizzazione codice nell’evento load della form.
In questo evento carichiamo tutte le variabili d’ambiente presenti nel sistema.
Per ottenere tutte le variabili, dobbiamo utilizzare il metodo “GetEnvironmentVariables” della classe “Environment” che permette di elencare tutte le variabili d’ambiente. Visualizziamo la chiave  ed il valore nella griglia.

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


C#

private void Form1_Load(object sender, EventArgs e)

 {

             

 

     var variabiliAmbiente = Environment.GetEnvironmentVariables();

     var risultato = variabiliAmbiente.Cast<DictionaryEntry>()

                                         .OrderBy(x => x.Key)

                                         .Select(x => new { Chiave = x.Key, Valore = x.Value })

                                         .ToList();

 

 

     dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

     dataGridView1.DataSource = risultato;

 

 

 

 }




Ora non resta che eseguire il codice per visualizzare a video tutte le variabili d’ambiente.
Torniamo in visualizzazione grafica della nostra form, e facciamo click sul primo pulsante, quello con la dicitura “Ottieni” e che abbiamo assegnato il nome del controllo con il valore “BtnOttieniValore”.
Nell’evento click di questo pulsante, otteniamo il valore della variabile d’ambiente denominata “PATH”.
Di seguito si riporta il frammento di codice dell’evento click del pulsante, per ottenere un valore da una variabile d’ambiente.


C#

private void BtnOttieniValore_Click(object sender, EventArgs e)

 {

     string nomeVariabile = "PATH";

     string valoreTrovato = Environment.GetEnvironmentVariable(nomeVariabile);

 

     if (valoreTrovato != null)

     {

         Console.WriteLine("Il valore della variabile PATH è " + valoreTrovato );

     }

     else

     {

         Console.WriteLine("Variabile non trovata");

     }

 }


Ritorniamo in modalità grafica, in modo da visualizzare nella form i vari controlli. Facciamo doppio click sul secondo pulsante, quello con la dicitura “Imposta Valore”, il quale nome del pulsante è “BtnImpostaValore”, in modo da passare in visualizzazione codice.
In questo evento vedremo come creare una nuova variabile ed impostare un valore. 
Tramite il metodo “SetEnvironmentVariable” passando come parametri, il nome della nuova variabile d’ambiente, ed il valore della stessa, permette di creare una nuova variabile.
Di seguito si riporta il frammento di codice per creare una nuova variabile e visualizzare nelle griglia tutte le variabili compresa questa nuova.



C#

private void BtnImpostaValore_Click(object sender, EventArgs e)

 {

     // Imposta una nuova variabile d'ambiente

     string nomeVariabile = "VariabileNuova";

     string valoreVariabile = "Valore della variabile";

     Environment.SetEnvironmentVariable(nomeVariabile, valoreVariabile);

 

     var variabiliAmbiente = Environment.GetEnvironmentVariables();

     var risultato = variabiliAmbiente.Cast<DictionaryEntry>()

                                         .OrderBy(x => x.Key)

                                         .Select(x => new { Chiave = x.Key, Valore = x.Value })

                                         .ToList();

 

     dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

     dataGridView1.DataSource = risultato;

 

     // Rilevo il valore della nuova variabile d'ambiente

     string valoreRilevato = Environment.GetEnvironmentVariable(nomeVariabile);

     Console.WriteLine( "Valore: "  + valoreRilevato  );

 

 

 }


Siamo giunti all’ultimo esempio di codice, passiamo in visualizzazione grafica, e nel terzo ed ultimo pulsante, quello con la scritta “Elimina Variabile” al quale abbiamo dato il nome “BtnElimina”, facciamo doppio click in modo che passiamo  in visualizzazione codice dell’evento click del pulsante.
Tramite il metodo “SetEnvironmentVariable” della classe “Environment”, possiamo eliminare la variabile d’ambiente passando “null” come valore alla variabile che vogliamo eliminare.
Di seguito si riporta un esempio di codice per eliminare una variabile.


C#

private void btnElimina_Click(object sender, EventArgs e)

 {

     // Nome della variabile d'ambiente da eliminare

     string nomeVariabile = "VariabileNuova";

 

     // Elimina la variabile d'ambiente

     Environment.SetEnvironmentVariable(nomeVariabile, null);

 

     var variabiliAmbiente = Environment.GetEnvironmentVariables();

     var risultato = variabiliAmbiente.Cast<DictionaryEntry>()

                                         .OrderBy(x => x.Key)

                                         .Select(x => new { Chiave = x.Key, Valore = x.Value })

                                         .ToList();

 

 

     dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

     dataGridView1.DataSource = risultato;

 

     // Verifica se la variabile d'ambiente è stata eliminata

     string retrievedValue = Environment.GetEnvironmentVariable(nomeVariabile);

     if (retrievedValue == null)

     {

         Console.WriteLine( "La variabile d'ambiente " + nomeVariabile + " è stata eliminata.");

     }

     else

     {

         Console.WriteLine( "Variabile ambiente ancora presente");

     }

 }

 




Conclusioni

L’articolo ha voluto fornire al lettore l’utilizzo delle variabili d’ambiente, in particolar modo fornendo un’introduzione sui vari aspetti di utilizzo. Le classi messe a disposizione dal Framework .Net permettono di semplificare lo sviluppo software, gestendo scenari anche molto complessi.

Nessun commento: