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)