Índice de la sección dedicada a .NET (en el Guille) Cómo... en .NET

Obtener información acerca del entorno y plataforma actual con Environment

Código para Visual Basic.NET (VB.NET)

Código para C Sharp (C#)


Publicado el 21/Jun/2002
Actualizado el 26/Oct/2002

 

Según la documentación de Visual Studio.NET, la clase Environment se puede usar para obtener información sobre:

Y habría que añadir que también podemos saber el nombre del equipo, el nombre del usuario que ha iniciado la sesión, los directorios especiales asociados con ese usuario, las unidades lógicas y otras cosillas más.

En el código mostrado a continuación veremos cómo usar las propiedades y métodos de esta clase.

El formulario usado para esta prueba contiene un control ListView, además de una etiqueta y un botón para cerrar el formulario.


Código para Visual Basic.NET (VB.NET)

En el código incluyo comentarios con la descripción de cada propiedad y método usado:


With ListView1
    .View = View.Details
    .FullRowSelect = True
    .GridLines = True
    .LabelEdit = False
    ' añadir las columnas
    .Columns.Add("Propiedad", 170, HorizontalAlignment.Left)
    .Columns.Add("Valor", 300, HorizontalAlignment.Left)
End With
'
Me.CancelButton = Me.btnCerrar
'
' Mostrar en el ListView el contenido de la clase Environment
Dim lvItem As ListViewItem
Dim i As Int32
Dim tDE As DictionaryEntry
'
' la línea de comandos
lvItem = ListView1.Items.Add("CommandLine")
lvItem.SubItems.Add(Environment.CommandLine)
' el directorio actual
lvItem = ListView1.Items.Add("CurrentDirectory")
lvItem.SubItems.Add(Environment.CurrentDirectory)
' los argumentos de la línea de comandos
lvItem = ListView1.Items.Add("GetCommandLineArgs.Length")
lvItem.SubItems.Add(Environment.GetCommandLineArgs.Length.ToString)
For i = 0 To Environment.GetCommandLineArgs.Length - 1
    lvItem = ListView1.Items.Add("GetCommandLineArgs(" & i.ToString & ")")
    lvItem.SubItems.Add(Environment.GetCommandLineArgs(i))
Next
' las variables de entorno
lvItem = ListView1.Items.Add("GetEnvironmentVariables.Count")
lvItem.SubItems.Add(Environment.GetEnvironmentVariables.Count.ToString)
For Each tDE In Environment.GetEnvironmentVariables
    lvItem = ListView1.Items.Add("...(" & tDE.Key.ToString & ")")
    lvItem.SubItems.Add(tDE.Value.ToString)
Next
' los directorios especiales
lvItem = ListView1.Items.Add("GetFolderPath(SpecialFolder. ...)")
lvItem.SubItems.Add(" ")
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.ApplicationData.ToString & ")")
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.CommonProgramFiles.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.Cookies.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Cookies))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.DesktopDirectory.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.Favorites.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Favorites))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.History.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.History))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.InternetCache.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.LocalApplicationData.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.Personal.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Personal))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.ProgramFiles.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.Programs.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Programs))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.Recent.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Recent))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.SendTo.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.SendTo))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.StartMenu.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.Startup.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Startup))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.System.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.System))
lvItem = ListView1.Items.Add("..." & Environment.SpecialFolder.Templates.ToString)
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Templates))
' las unidades lógicas
lvItem = ListView1.Items.Add("GetLogicalDrives.Length")
lvItem.SubItems.Add(Environment.GetLogicalDrives.Length.ToString)
For i = 0 To Environment.GetLogicalDrives.Length - 1
    lvItem = ListView1.Items.Add("GetLogicalDrives(" & i.ToString & ")")
    lvItem.SubItems.Add(Environment.GetLogicalDrives(i))
Next
' el nombre del equipo
lvItem = ListView1.Items.Add("MachineName")
lvItem.SubItems.Add(Environment.MachineName)
' la plataforma actual
lvItem = ListView1.Items.Add("OSVersion.Platform")
lvItem.SubItems.Add(Environment.OSVersion.Platform.ToString)
' la versión del sistema
lvItem = ListView1.Items.Add("OSVersion.Version")
lvItem.SubItems.Add(Environment.OSVersion.Version.ToString)
' información de la pila
Dim s As String
For Each s In Environment.StackTrace.Split(CChar(vbLf))
    lvItem = ListView1.Items.Add("StackTrace...")
    lvItem.SubItems.Add(s)
Next
' el directorio del sistema
lvItem = ListView1.Items.Add("SystemDirectory")
lvItem.SubItems.Add(Environment.SystemDirectory)
' el número de milisegundos desde que se inició el equipo
lvItem = ListView1.Items.Add("TickCount")
lvItem.SubItems.Add(Environment.TickCount.ToString("###,###"))
' el nombre de dominio de red asociado al usuario actual
lvItem = ListView1.Items.Add("UserDomainName")
lvItem.SubItems.Add(Environment.UserDomainName)
' el nombre del usuario
lvItem = ListView1.Items.Add("UserName")
lvItem.SubItems.Add(Environment.UserName)
' indica si el proceso actual se ejecuta en modo de interacción con el usuario
' Será False cuando se ejecute como proceso de servicio o desde una aplicación Web.
lvItem = ListView1.Items.Add("UserInteractive")
lvItem.SubItems.Add(Environment.UserInteractive.ToString)
' la versión del Common Language Runtime
lvItem = ListView1.Items.Add("CLR Version")
lvItem.SubItems.Add(Environment.Version.ToString)
' número de bytes de memoria física asignada al contexto del proceso
' en Windows 98/ME siempre devuelve cero
lvItem = ListView1.Items.Add("WorkingSet (memoria asignada)")
lvItem.SubItems.Add(Environment.WorkingSet.ToString("###,###"))

 


Código para C Sharp (C#)

En el código incluyo comentarios con la descripción de cada propiedad y método usado:


listView1.View = View.Details;
listView1.FullRowSelect = true;
listView1.GridLines = true;
listView1.LabelEdit = false;
// añadir las columnas
listView1.Columns.Add("Propiedad", 170, HorizontalAlignment.Left);
listView1.Columns.Add("Valor", 300, HorizontalAlignment.Left);
//
this.CancelButton = this.btnCerrar;
//
// Mostrar en el ListView el contenido de la clase Environment
ListViewItem lvItem;
Int32 i;
//
// la línea de comandos
lvItem = listView1.Items.Add("CommandLine");
lvItem.SubItems.Add(Environment.CommandLine);
// el directorio actual
lvItem = listView1.Items.Add("CurrentDirectory");
lvItem.SubItems.Add(Environment.CurrentDirectory);
// los argumentos de la línea de comandos
lvItem = listView1.Items.Add("GetCommandLineArgs.Length");
lvItem.SubItems.Add(Environment.GetCommandLineArgs().Length.ToString());
for( i = 0; i < Environment.GetCommandLineArgs().Length; i++ ){
	lvItem = listView1.Items.Add("GetCommandLineArgs(" + i.ToString() + ")");
	lvItem.SubItems.Add(Environment.GetCommandLineArgs()[i]);
}
// las variables de entorno
lvItem = listView1.Items.Add("GetEnvironmentVariables.Count");
lvItem.SubItems.Add(Environment.GetEnvironmentVariables().Count.ToString());
foreach( DictionaryEntry tDE in Environment.GetEnvironmentVariables() ){
	lvItem = listView1.Items.Add("...(" + tDE.Key.ToString() + ")");
	lvItem.SubItems.Add(tDE.Value.ToString());
}
// los directorios especiales
lvItem = listView1.Items.Add("GetFolderPath(SpecialFolder. ...)");
lvItem.SubItems.Add(" ");
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.ApplicationData.ToString() + ")");
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.CommonProgramFiles.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.Cookies.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Cookies));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.DesktopDirectory.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.Favorites.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Favorites));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.History.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.History));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.InternetCache.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.LocalApplicationData.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.Personal.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Personal));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.ProgramFiles.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.Programs.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Programs));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.Recent.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Recent));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.SendTo.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.SendTo));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.StartMenu.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.Startup.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Startup));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.System.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.System));
lvItem = listView1.Items.Add("..." + Environment.SpecialFolder.Templates.ToString());
lvItem.SubItems.Add(Environment.GetFolderPath(Environment.SpecialFolder.Templates));
// las unidades lógicas
lvItem = listView1.Items.Add("GetLogicalDrives.Length");
lvItem.SubItems.Add(Environment.GetLogicalDrives().Length.ToString());
for( i = 0; i < Environment.GetLogicalDrives().Length; i++ ){
	lvItem = listView1.Items.Add("GetLogicalDrives(" + i.ToString() + ")");
	lvItem.SubItems.Add(Environment.GetLogicalDrives()[i]);
}
// el nombre del equipo
lvItem = listView1.Items.Add("MachineName");
lvItem.SubItems.Add(Environment.MachineName);
// la plataforma actual
lvItem = listView1.Items.Add("OSVersion.Platform");
lvItem.SubItems.Add(Environment.OSVersion.Platform.ToString());
// la versión del sistema
lvItem = listView1.Items.Add("OSVersion.Version");
lvItem.SubItems.Add(Environment.OSVersion.Version.ToString());
// información de la pila
foreach( String s in Environment.StackTrace.Split('\n')){
	lvItem = listView1.Items.Add("StackTrace...");
	lvItem.SubItems.Add(s);
}
// el directorio del sistema
lvItem = listView1.Items.Add("SystemDirectory");
lvItem.SubItems.Add(Environment.SystemDirectory);
// el número de milisegundos desde que se inició el equipo
lvItem = listView1.Items.Add("TickCount");
lvItem.SubItems.Add(Environment.TickCount.ToString("###,###"));
// el nombre de dominio de red asociado al usuario actual
lvItem = listView1.Items.Add("UserDomainName");
lvItem.SubItems.Add(Environment.UserDomainName);
// el nombre del usuario
lvItem = listView1.Items.Add("UserName");
lvItem.SubItems.Add(Environment.UserName);
// indica si el proceso actual se ejecuta en modo de interacción con el usuario
// Será False cuando se ejecute como proceso de servicio o desde una aplicación Web.
lvItem = listView1.Items.Add("UserInteractive");
lvItem.SubItems.Add(Environment.UserInteractive.ToString());
// la versión del Common Language Runtime
lvItem = listView1.Items.Add("CLR Version");
lvItem.SubItems.Add(Environment.Version.ToString());
// número de bytes de memoria física asignada al contexto del proceso
// en Windows 98/ME siempre devuelve cero
lvItem = listView1.Items.Add("WorkingSet (memoria asignada)");
lvItem.SubItems.Add(Environment.WorkingSet.ToString("###,###"));

Pulsa este link para bajarte el código para VB y C# (environment.zip 15.8 KB)


la Luna del Guille o... el Guille que está en la Luna... tanto monta...