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.
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("###,###"))
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)