SystemInformation (Clase)
Actualización: noviembre 2007
Proporciona información acerca del entorno del sistema actual.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
La clase SystemInformation proporciona propiedades static que se pueden utilizar para obtener información sobre el entorno del sistema actual. La clase proporciona acceso a información como los tamaños de los elementos de visualización de Windows, la configuración del sistema operativo, la disponibilidad de la red y las funciones del hardware instalados en el sistema. No se puede crear una instancia de esta clase.
Para obtener más información sobre los parámetros que se aplican a todo el sistema, vea "SystemParametersInfo" en la documentación de Platform SDK en .
En el ejemplo siguiente se enumeran todas las propiedades de la clase SystemInformation en un objeto ListBox y se muestra el valor actual de la propiedad en un TextBox cuando se selecciona un elemento de la lista.
using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Reflection; using System.Windows.Forms; namespace SystemInfoBrowser { public class SystemInfoBrowserForm : System.Windows.Forms.Form { private System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.TextBox textBox1; public SystemInfoBrowserForm() { this.SuspendLayout(); InitForm(); // Add each property of the SystemInformation class to the list box. Type t = typeof(System.Windows.Forms.SystemInformation); PropertyInfo[] pi = t.GetProperties(); for( int i=0; i<pi.Length; i++ ) listBox1.Items.Add( pi[i].Name ); textBox1.Text = "The SystemInformation class has "+pi.Length.ToString()+" properties.\r\n"; // Configure the list item selected handler for the list box to invoke a // method that displays the value of each property. listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged); this.ResumeLayout(false); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { // Return if no list item is selected. if( listBox1.SelectedIndex == -1 ) return; // Get the property name from the list item. string propname = listBox1.Text; if( propname == "PowerStatus" ) { // Cycle and display the values of each property of the PowerStatus property. textBox1.Text += "\r\nThe value of the PowerStatus property is:"; Type t = typeof(System.Windows.Forms.PowerStatus); PropertyInfo[] pi = t.GetProperties(); for( int i=0; i<pi.Length; i++ ) { object propval = pi[i].GetValue(SystemInformation.PowerStatus, null); textBox1.Text += "\r\n PowerStatus."+pi[i].Name+" is: "+propval.ToString(); } } else { // Display the value of the selected property of the SystemInformation type. Type t = typeof(System.Windows.Forms.SystemInformation); PropertyInfo[] pi = t.GetProperties(); PropertyInfo prop = null; for( int i=0; i<pi.Length; i++ ) if( pi[i].Name == propname ) { prop = pi[i]; break; } object propval = prop.GetValue(null, null); textBox1.Text += "\r\nThe value of the "+propname+" property is: "+propval.ToString(); } } private void InitForm() { // Initialize the form settings this.listBox1 = new System.Windows.Forms.ListBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.listBox1.Location = new System.Drawing.Point(8, 16); this.listBox1.Size = new System.Drawing.Size(172, 496); this.listBox1.TabIndex = 0; this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Right))); this.textBox1.Location = new System.Drawing.Point(188, 16); this.textBox1.Multiline = true; this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.textBox1.Size = new System.Drawing.Size(420, 496); this.textBox1.TabIndex = 1; this.ClientSize = new System.Drawing.Size(616, 525); this.Controls.Add(this.textBox1); this.Controls.Add(this.listBox1); this.Text = "Select a SystemInformation property to get the value of"; } [STAThread] static void Main() { Application.Run(new SystemInfoBrowserForm()); } } }
package SystemInfoBrowser;
import System.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.Drawing.*;
import System.Reflection.*;
import System.Windows.Forms.*;
public class SystemInfoBrowserForm extends System.Windows.Forms.Form
{
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.TextBox textBox1;
public SystemInfoBrowserForm()
{
this.SuspendLayout();
InitForm();
// Add each property of the SystemInformation class to the list box.
Type t = System.Windows.Forms.SystemInformation.class.ToType();
PropertyInfo pi[] = t.GetProperties();
for (int i = 0; i < pi.length; i++) {
listBox1.get_Items().Add(pi[i].get_Name());
}
textBox1.set_Text("The SystemInformation class has "
+ ((Int32)pi.length).ToString() + " properties.\r\n");
// Configure the list item selected handler for the list box to invoke
// a method that displays the value of each property.
listBox1.add_SelectedIndexChanged(
new EventHandler(listBox1_SelectedIndexChanged));
this.ResumeLayout(false);
} //SystemInfoBrowserForm
private void listBox1_SelectedIndexChanged(Object sender, EventArgs e)
{
// Return if no list item is selected.
if (listBox1.get_SelectedIndex() == -1) {
return;
}
// Get the property name from the list item.
String propname = listBox1.get_Text();
if (propname.Equals("PowerStatus")) {
// Cycle and display the values of each property of the
// PowerStatus property.
textBox1.set_Text(textBox1.get_Text()
+ "\r\nThe value of the PowerStatus property is:");
Type t = System.Windows.Forms.PowerStatus.class.ToType();
PropertyInfo pi[] = t.GetProperties();
for (int i = 0; i < pi.length; i++) {
Object propval = pi[i].GetValue(
SystemInformation.get_PowerStatus(), null);
textBox1.set_Text(textBox1.get_Text()
+ "\r\n PowerStatus." + pi[i].get_Name()
+ " is: " + propval.ToString());
}
}
else {
// Display the value of the selected property of the
// SystemInformation type.
Type t = System.Windows.Forms.SystemInformation.class.ToType();
PropertyInfo pi[] = t.GetProperties();
PropertyInfo prop = null;
for (int i = 0; i < pi.length; i++) {
if (pi[i].get_Name().Equals(propname)) {
prop = pi[i];
break;
}
}
Object propval = prop.GetValue(null, null);
textBox1.set_Text(textBox1.get_Text() + "\r\nThe value of the "
+ propname + " property is: " + propval.ToString());
}
} //listBox1_SelectedIndexChanged
private void InitForm()
{
// Initialize the form settings
this.listBox1 = new System.Windows.Forms.ListBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.listBox1.set_Anchor((System.Windows.Forms.AnchorStyles)
(System.Windows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left
| System.Windows.Forms.AnchorStyles.Right));
this.listBox1.set_Location(new System.Drawing.Point(8, 16));
this.listBox1.set_Size(new System.Drawing.Size(172, 496));
this.listBox1.set_TabIndex(0);
this.textBox1.set_Anchor((System.Windows.Forms.AnchorStyles)
(System.Windows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Right));
this.textBox1.set_Location(new System.Drawing.Point(188, 16));
this.textBox1.set_Multiline(true);
this.textBox1.set_ScrollBars(System.Windows.Forms.ScrollBars.Vertical);
this.textBox1.set_Size(new System.Drawing.Size(420, 496));
this.textBox1.set_TabIndex(1);
this.set_ClientSize(new System.Drawing.Size(616, 525));
this.get_Controls().Add(this.textBox1);
this.get_Controls().Add(this.listBox1);
this.set_Text("Select a SystemInformation property to get the value of");
} //InitForm
/** @attribute STAThread()
*/
public static void main(String[] args)
{
Application.Run(new SystemInfoBrowserForm());
} //main
} //SystemInfoBrowserForm
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.