SystemInformation Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Provides information about the current system environment.
public ref class SystemInformation
public ref class SystemInformation abstract sealed
public class SystemInformation
public static class SystemInformation
type SystemInformation = class
Public Class SystemInformation
- Inheritance
-
SystemInformation
Examples
The following code example lists all properties of the SystemInformation class in a ListBox and displays the current value of the property in a TextBox when a list item selected.
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::Drawing;
using namespace System::Reflection;
using namespace System::Windows::Forms;
public ref class SystemInfoBrowserForm: public System::Windows::Forms::Form
{
private:
System::Windows::Forms::ListBox^ listBox1;
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::typeid;
array<PropertyInfo^>^pi = t->GetProperties();
for ( int i = 0; i < pi->Length; i++ )
listBox1->Items->Add( pi[ i ]->Name );
textBox1->Text = String::Format( "The SystemInformation class has {0} properties.\r\n", pi->Length );
// Configure the list item selected handler for the list box to invoke a
// method that displays the value of each property.
listBox1->SelectedIndexChanged += gcnew EventHandler( this, &SystemInfoBrowserForm::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->Equals( "PowerStatus" ) )
{
// Cycle and display the values of each property of the PowerStatus property.
textBox1->Text = String::Concat( textBox1->Text, "\r\nThe value of the PowerStatus property is:" );
Type^ t = System::Windows::Forms::PowerStatus::typeid;
array<PropertyInfo^>^pi = t->GetProperties();
for ( int i = 0; i < pi->Length; i++ )
{
Object^ propval = pi[ i ]->GetValue( SystemInformation::PowerStatus, nullptr );
textBox1->Text = String::Format( "{0}\r\n PowerStatus.{1} is: {2}", textBox1->Text, pi[ i ]->Name, propval );
}
}
else
{
// Display the value of the selected property of the SystemInformation type.
Type^ t = System::Windows::Forms::SystemInformation::typeid;
array<PropertyInfo^>^pi = t->GetProperties();
PropertyInfo^ prop = nullptr;
for ( int i = 0; i < pi->Length; i++ )
if ( pi[ i ]->Name == propname )
{
prop = pi[ i ];
break;
}
Object^ propval = prop->GetValue( nullptr, nullptr );
textBox1->Text = String::Format( "{0}\r\nThe value of the {1} property is: {2}", textBox1->Text, propname, propval );
}
}
void InitForm()
{
// Initialize the form settings
this->listBox1 = gcnew System::Windows::Forms::ListBox;
this->textBox1 = gcnew 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 = System::Drawing::Point( 8, 16 );
this->listBox1->Size = 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 = System::Drawing::Point( 188, 16 );
this->textBox1->Multiline = true;
this->textBox1->ScrollBars = System::Windows::Forms::ScrollBars::Vertical;
this->textBox1->Size = System::Drawing::Size( 420, 496 );
this->textBox1->TabIndex = 1;
this->ClientSize = 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]
int main()
{
Application::Run( gcnew SystemInfoBrowserForm );
}
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());
}
}
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Reflection
Imports System.Windows.Forms
Public Class SystemInfoBrowserForm
Inherits System.Windows.Forms.Form
Private listBox1 As System.Windows.Forms.ListBox
Private textBox1 As System.Windows.Forms.TextBox
Public Sub New()
Me.SuspendLayout()
InitForm()
' Add each property of the SystemInformation class to the list box.
Dim t As Type = GetType(System.Windows.Forms.SystemInformation)
Dim pi As PropertyInfo() = t.GetProperties()
Dim i As Integer
For i = 0 To pi.Length - 1
listBox1.Items.Add(pi(i).Name)
Next i
textBox1.Text = "The SystemInformation class has " + pi.Length.ToString() + " properties." + ControlChars.CrLf
' Configure the list item selected handler for the list box to invoke a
' method that displays the value of each property.
AddHandler listBox1.SelectedIndexChanged, AddressOf listBox1_SelectedIndexChanged
Me.ResumeLayout(False)
End Sub
Private Sub listBox1_SelectedIndexChanged(sender As Object, e As EventArgs)
' Return if no list item is selected.
If listBox1.SelectedIndex = - 1 Then
Return
End If
' Get the property name from the list item.
Dim propname As String = listBox1.Text
If propname = "PowerStatus" Then
' Cycle and display the values of each property of the PowerStatus property.
textBox1.Text += ControlChars.CrLf + "The value of the PowerStatus property is:"
Dim t As Type = GetType(System.Windows.Forms.PowerStatus)
Dim pi As PropertyInfo() = t.GetProperties()
Dim i As Integer
For i = 0 To pi.Length - 1
Dim propval As Object = pi(i).GetValue(SystemInformation.PowerStatus, Nothing)
textBox1.Text += ControlChars.CrLf + " PowerStatus." + pi(i).Name + " is: " + propval.ToString()
Next i
Else
' Display the value of the selected property of the SystemInformation type.
Dim t As Type = GetType(System.Windows.Forms.SystemInformation)
Dim pi As PropertyInfo() = t.GetProperties()
Dim prop As PropertyInfo = Nothing
Dim i As Integer
For i = 0 To pi.Length - 1
If pi(i).Name = propname Then
prop = pi(i)
Exit For
End If
Next i
Dim propval As Object = prop.GetValue(Nothing, Nothing)
textBox1.Text += ControlChars.CrLf + "The value of the " + propname + " property is: " + propval.ToString()
End If
End Sub
Private Sub InitForm()
' Initialize the form settings
Me.listBox1 = New System.Windows.Forms.ListBox()
Me.textBox1 = New System.Windows.Forms.TextBox()
Me.listBox1.Anchor = CType(System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right, System.Windows.Forms.AnchorStyles)
Me.listBox1.Location = New System.Drawing.Point(8, 16)
Me.listBox1.Size = New System.Drawing.Size(172, 496)
Me.listBox1.TabIndex = 0
Me.textBox1.Anchor = CType(System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right, System.Windows.Forms.AnchorStyles)
Me.textBox1.Location = New System.Drawing.Point(188, 16)
Me.textBox1.Multiline = True
Me.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.textBox1.Size = New System.Drawing.Size(420, 496)
Me.textBox1.TabIndex = 1
Me.ClientSize = New System.Drawing.Size(616, 525)
Me.Controls.Add(Me.textBox1)
Me.Controls.Add(Me.listBox1)
Me.Text = "Select a SystemInformation property to get the value of"
End Sub
<STAThread()> _
Shared Sub Main()
Application.Run(New SystemInfoBrowserForm())
End Sub
End Class
Remarks
The SystemInformation class provides static
properties that can be used to get information about the current system environment. The class provides access to information such as Windows display element sizes, operating system settings, network availability, and the capabilities of hardware installed on the system. This class cannot be instantiated.
For more information about system-wide parameters, see SystemParametersInfo.
Properties
ActiveWindowTrackingDelay |
Gets the active window tracking delay. |
ArrangeDirection |
Gets a value that indicates the direction in which the operating system arranges minimized windows. |
ArrangeStartingPosition |
Gets an ArrangeStartingPosition value that indicates the starting position from which the operating system arranges minimized windows. |
BootMode |
Gets a BootMode value that indicates the boot mode the system was started in. |
Border3DSize |
Gets the thickness, in pixels, of a three-dimensional (3-D) style window or system control border. |
BorderMultiplierFactor |
Gets the border multiplier factor that is used when determining the thickness of a window's sizing border. |
BorderSize |
Gets the thickness, in pixels, of a flat-style window or system control border. |
CaptionButtonSize |
Gets the standard size, in pixels, of a button in a window's title bar. |
CaptionHeight |
Gets the height, in pixels, of the standard title bar area of a window. |
CaretBlinkTime |
Gets the caret blink time. |
CaretWidth |
Gets the width, in pixels, of the caret in edit controls. |
ComputerName |
Gets the NetBIOS computer name of the local computer. |
CursorSize |
Gets the maximum size, in pixels, that a cursor can occupy. |
DbcsEnabled |
Gets a value indicating whether the operating system is capable of handling double-byte character set (DBCS) characters. |
DebugOS |
Gets a value indicating whether the debug version of USER.EXE is installed. |
DoubleClickSize |
Gets the dimensions, in pixels, of the area within which the user must click twice for the operating system to consider the two clicks a double-click. |
DoubleClickTime |
Gets the maximum number of milliseconds that can elapse between a first click and a second click for the OS to consider the mouse action a double-click. |
DragFullWindows |
Gets a value indicating whether the user has enabled full window drag. |
DragSize |
Gets the width and height of a rectangle centered on the point the mouse button was pressed, within which a drag operation will not begin. |
FixedFrameBorderSize |
Gets the thickness, in pixels, of the frame border of a window that has a caption and is not resizable. |
FontSmoothingContrast |
Gets the font smoothing contrast value used in ClearType smoothing. |
FontSmoothingType |
Gets the current type of font smoothing. |
FrameBorderSize |
Gets the thickness, in pixels, of the resizing border that is drawn around the perimeter of a window that is being drag resized. |
HighContrast |
Gets a value indicating whether the user has enabled the high-contrast mode accessibility feature. |
HorizontalFocusThickness |
Gets the thickness of the left and right edges of the system focus rectangle, in pixels. |
HorizontalResizeBorderThickness |
Gets the thickness of the left and right edges of the sizing border around the perimeter of a window being resized, in pixels. |
HorizontalScrollBarArrowWidth |
Gets the width, in pixels, of the arrow bitmap on the horizontal scroll bar. |
HorizontalScrollBarHeight |
Gets the default height, in pixels, of the horizontal scroll bar. |
HorizontalScrollBarThumbWidth |
Gets the width, in pixels, of the scroll box in a horizontal scroll bar. |
IconHorizontalSpacing |
Gets the width, in pixels, of an icon arrangement cell in large icon view. |
IconSize |
Gets the dimensions, in pixels, of the Windows default program icon size. |
IconSpacingSize |
Gets the size, in pixels, of the grid square used to arrange icons in a large-icon view. |
IconVerticalSpacing |
Gets the height, in pixels, of an icon arrangement cell in large icon view. |
IsActiveWindowTrackingEnabled |
Gets a value indicating whether active window tracking is enabled. |
IsComboBoxAnimationEnabled |
Gets a value indicating whether the slide-open effect for combo boxes is enabled. |
IsDropShadowEnabled |
Gets a value indicating whether the drop shadow effect is enabled. |
IsFlatMenuEnabled |
Gets a value indicating whether native user menus have a flat menu appearance. |
IsFontSmoothingEnabled |
Gets a value indicating whether font smoothing is enabled. |
IsHotTrackingEnabled |
Gets a value indicating whether hot tracking of user-interface elements, such as menu names on menu bars, is enabled. |
IsIconTitleWrappingEnabled |
Gets a value indicating whether icon-title wrapping is enabled. |
IsKeyboardPreferred |
Gets a value indicating whether the user relies on the keyboard instead of the mouse, and prefers applications to display keyboard interfaces that would otherwise be hidden. |
IsListBoxSmoothScrollingEnabled |
Gets a value indicating whether the smooth-scrolling effect for list boxes is enabled. |
IsMenuAnimationEnabled |
Gets a value indicating whether menu fade or slide animation features are enabled. |
IsMenuFadeEnabled |
Gets a value indicating whether menu fade animation is enabled. |
IsMinimizeRestoreAnimationEnabled |
Gets a value indicating whether window minimize and restore animation is enabled. |
IsSelectionFadeEnabled |
Gets a value indicating whether the selection fade effect is enabled. |
IsSnapToDefaultEnabled |
Gets a value indicating whether the snap-to-default-button feature is enabled. |
IsTitleBarGradientEnabled |
Gets a value indicating whether the gradient effect for window title bars is enabled. |
IsToolTipAnimationEnabled |
Gets a value indicating whether ToolTip animation is enabled. |
KanjiWindowHeight |
Gets the height, in pixels, of the Kanji window at the bottom of the screen for double-byte character set (DBCS) versions of Windows. |
KeyboardDelay |
Gets the keyboard repeat-delay setting. |
KeyboardSpeed |
Gets the keyboard repeat-speed setting. |
MaxWindowTrackSize |
Gets the default maximum dimensions, in pixels, of a window that has a caption and sizing borders. |
MenuAccessKeysUnderlined |
Gets a value indicating whether menu access keys are always underlined. |
MenuBarButtonSize |
Gets the default width, in pixels, for menu-bar buttons and the height, in pixels, of a menu bar. |
MenuButtonSize |
Gets the default dimensions, in pixels, of menu-bar buttons. |
MenuCheckSize |
Gets the dimensions, in pixels, of the default size of a menu check mark area. |
MenuFont |
Gets the font used to display text on menus. |
MenuHeight |
Gets the height, in pixels, of one line of a menu. |
MenuShowDelay |
Gets the time, in milliseconds, that the system waits before displaying a cascaded shortcut menu when the mouse cursor is over a submenu item. |
MidEastEnabled |
Gets a value indicating whether the operating system is enabled for the Hebrew and Arabic languages. |
MinimizedWindowSize |
Gets the dimensions, in pixels, of a normal minimized window. |
MinimizedWindowSpacingSize |
Gets the dimensions, in pixels, of the area each minimized window is allocated when arranged. |
MinimumWindowSize |
Gets the minimum width and height for a window, in pixels. |
MinWindowTrackSize |
Gets the default minimum dimensions, in pixels, that a window may occupy during a drag resize. |
MonitorCount |
Gets the number of display monitors on the desktop. |
MonitorsSameDisplayFormat |
Gets a value indicating whether all the display monitors are using the same pixel color format. |
MouseButtons |
Gets the number of buttons on the mouse. |
MouseButtonsSwapped |
Gets a value indicating whether the functions of the left and right mouse buttons have been swapped. |
MouseHoverSize |
Gets the dimensions, in pixels, of the rectangle within which the mouse pointer has to stay for the mouse hover time before a mouse hover message is generated. |
MouseHoverTime |
Gets the time, in milliseconds, that the mouse pointer has to stay in the hover rectangle before a mouse hover message is generated. |
MousePresent |
Gets a value indicating whether a pointing device is installed. |
MouseSpeed |
Gets the current mouse speed. |
MouseWheelPresent |
Gets a value indicating whether a mouse with a mouse wheel is installed. |
MouseWheelScrollDelta |
Gets the amount of the delta value of a single mouse wheel rotation increment. |
MouseWheelScrollLines |
Gets the number of lines to scroll when the mouse wheel is rotated. |
NativeMouseWheelSupport |
Gets a value indicating whether a mouse with a mouse wheel is installed. |
Network |
Gets a value indicating whether a network connection is present. |
PenWindows |
Gets a value indicating whether the Microsoft Windows for Pen Computing extensions are installed. |
PopupMenuAlignment |
Gets the side of pop-up menus that are aligned to the corresponding menu-bar item. |
PowerStatus |
Gets the current system power status. |
PrimaryMonitorMaximizedWindowSize |
Gets the default dimensions, in pixels, of a maximized window on the primary display. |
PrimaryMonitorSize |
Gets the dimensions, in pixels, of the current video mode of the primary display. |
RightAlignedMenus |
Gets a value indicating whether drop-down menus are right-aligned with the corresponding menu-bar item. |
ScreenOrientation |
Gets the orientation of the screen. |
Secure |
Gets a value indicating whether a Security Manager is present on this operating system. |
ShowSounds |
Gets a value indicating whether the user prefers that an application present information in visual form in situations when it would present the information in audible form. |
SizingBorderWidth |
Gets the width, in pixels, of the sizing border drawn around the perimeter of a window being resized. |
SmallCaptionButtonSize |
Gets the width, in pixels, of small caption buttons, and the height, in pixels, of small captions. |
SmallIconSize |
Gets the dimensions, in pixels, of a small icon. |
TerminalServerSession |
Gets a value indicating whether the calling process is associated with a Terminal Services client session. |
ToolWindowCaptionButtonSize |
Gets the dimensions, in pixels, of small caption buttons. |
ToolWindowCaptionHeight |
Gets the height, in pixels, of a tool window caption. |
UIEffectsEnabled |
Gets a value indicating whether user interface (UI) effects are enabled or disabled. |
UserDomainName |
Gets the name of the domain the user belongs to. |
UserInteractive |
Gets a value indicating whether the current process is running in user-interactive mode. |
UserName |
Gets the user name associated with the current thread. |
VerticalFocusThickness |
Gets the thickness, in pixels, of the top and bottom edges of the system focus rectangle. |
VerticalResizeBorderThickness |
Gets the thickness, in pixels, of the top and bottom edges of the sizing border around the perimeter of a window being resized. |
VerticalScrollBarArrowHeight |
Gets the height, in pixels, of the arrow bitmap on the vertical scroll bar. |
VerticalScrollBarThumbHeight |
Gets the height, in pixels, of the scroll box in a vertical scroll bar. |
VerticalScrollBarWidth |
Gets the default width, in pixels, of the vertical scroll bar. |
VirtualScreen |
Gets the bounds of the virtual screen. |
WorkingArea |
Gets the size, in pixels, of the working area of the screen. |
Methods
GetBorderSizeForDpi(Int32) |
Gets the thickness, in pixels, of a flat-style window or system control border for a given DPI value. |
GetHorizontalScrollBarArrowWidthForDpi(Int32) |
Gets the width of the horizontal scroll bar arrow bitmap in pixels. |
GetHorizontalScrollBarHeightForDpi(Int32) |
Gets the default height, in pixels, of the horizontal scroll bar for a given DPI value. |
GetMenuFontForDpi(Int32) |
Gets the font used to display text on menus for use in changing the DPI for a given display device. |
GetVerticalScrollBarWidthForDpi(Int32) |
Gets the default height, in pixels, of the vertical scroll bar for a given DPI value. |
VerticalScrollBarArrowHeightForDpi(Int32) |
Gets the height of the vertical scroll bar arrow bitmap in pixels. |