SystemInformation 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供当前系统环境的有关信息。
public ref class SystemInformation
public ref class SystemInformation abstract sealed
public class SystemInformation
public static class SystemInformation
type SystemInformation = class
Public Class SystemInformation
- 继承
-
SystemInformation
示例
下面的代码示例列出类ListBox的所有属性SystemInformation,并在选择列表项时显示属性TextBox的当前值。
#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
注解
该 SystemInformation 类提供 static
可用于获取有关当前系统环境的信息的属性。 该类提供对信息的访问权限,例如Windows显示元素大小、操作系统设置、网络可用性以及系统上安装的硬件的功能。 此类无法实例化。
有关系统范围参数的详细信息,请参阅 SystemParametersInfo。
属性
ActiveWindowTrackingDelay |
获取活动窗口跟踪延迟。 |
ArrangeDirection |
获取一个值,该值指示操作系统排列最小化窗口的方向。 |
ArrangeStartingPosition |
获取一个 ArrangeStartingPosition 值,该值指示操作系统排列最小化窗口的起始位置。 |
BootMode |
获取一个 BootMode 值,该值指示系统启动的启动模式。 |
Border3DSize |
获取三维 (3-D) 样式窗口或系统控件边框的粗细(以像素为单位)。 |
BorderMultiplierFactor |
获取边框倍数因子,该倍数因子在确定窗口的大小调整边框的粗细时使用。 |
BorderSize |
获取平面样式窗口边框或系统控件边框的粗细(以像素为单位)。 |
CaptionButtonSize |
取窗口标题栏中按钮的标准尺寸(以像素为单位)。 |
CaptionHeight |
获取窗口的标准标题栏区域的高度(以像素为单位)。 |
CaretBlinkTime |
获取插入符号闪烁时间。 |
CaretWidth |
获取编辑控件中插入符号的宽度(以像素为单位)。 |
ComputerName |
获取本地计算机的 NetBIOS 计算机名称。 |
CursorSize |
获取光标能够占用的最大大小(以像素为单位)。 |
DbcsEnabled |
获取一个值,该值指示操作系统能否处理双字节字符集 (DBCS) 的字符。 |
DebugOS |
获取一个值,该值指示是否已安装调试版本的 USER.EXE。 |
DoubleClickSize |
获取如下区域的尺寸(以像素为单位):用户必须在此区域内单击两次,操作系统才将这两次单击视为一次双击。 |
DoubleClickTime |
获取要使操作系统将鼠标操作视为双击,第一次单击与第二次单击之间可以经过的最大毫秒数。 |
DragFullWindows |
获取一个值,该值指示用户是否已启用全窗口拖动。 |
DragSize |
获取以鼠标按钮的按下点为中心的矩形的宽度和高度,在该矩形内不会开始拖动操作。 |
FixedFrameBorderSize |
获取具有标题但不可调整大小的窗口的边框粗细(以像素为单位)。 |
FontSmoothingContrast |
获取 ClearType 平滑设置中使用的字体平滑显示对比度值。 |
FontSmoothingType |
获取当前的字体平滑显示类型。 |
FrameBorderSize |
获取在正拖动调整大小的窗口周围绘制的大小调整边框的粗细(以像素为单位)。 |
HighContrast |
获取一个值,该值指示用户是否已启用高对比度模式辅助功能。 |
HorizontalFocusThickness |
获取系统聚焦框的左右边缘的粗细(以像素为单位)。 |
HorizontalResizeBorderThickness |
获取被调整窗口的外围调整边框左右边缘的粗细(以像素为单位)。 |
HorizontalScrollBarArrowWidth |
获取水平滚动条上箭头位图的宽度(以像素为单位)。 |
HorizontalScrollBarHeight |
获取水平滚动条的默认高度(以像素为单位)。 |
HorizontalScrollBarThumbWidth |
获取水平滚动条中滚动框的宽度(以像素为单位)。 |
IconHorizontalSpacing |
获取大图标视图中图标排列单元格的宽度(以像素为单位)。 |
IconSize |
获取 Windows 默认程序图标大小的尺寸(以像素为单位)。 |
IconSpacingSize |
获取用于在大图标视图中排列图标的网格方形的尺寸(以像素为单位)。 |
IconVerticalSpacing |
获取大图标视图中图标排列单元格的高度(以像素为单位)。 |
IsActiveWindowTrackingEnabled |
获取一个值,该值指示是否启用活动窗口跟踪。 |
IsComboBoxAnimationEnabled |
获取一个值,该值指示是否启用组合框的滑动打开效果。 |
IsDropShadowEnabled |
获取一个值,该值指示是否已启用投影效果。 |
IsFlatMenuEnabled |
获取一个值,该值指示本机用户菜单是否具有平面菜单外观。 |
IsFontSmoothingEnabled |
获取一个值,该值指示是否已启用字体平滑。 |
IsHotTrackingEnabled |
获取一个值,该值指示是否启用对用户界面元素(如菜单栏上的菜单名)的热跟踪。 |
IsIconTitleWrappingEnabled |
获取一个值,该值指示是否已启用图标标题换行。 |
IsKeyboardPreferred |
获取一个值,该值指示用户是否依赖键盘而不是依赖鼠标,以及是否更希望应用程序显示在其他情况下隐藏的键盘界面。 |
IsListBoxSmoothScrollingEnabled |
获取一个值,该值指示是否启用列表框的平滑滚动效果。 |
IsMenuAnimationEnabled |
获取一个值,该值指示是否启用菜单淡出或滑动动画功能。 |
IsMenuFadeEnabled |
获取一个值,该值指示是否启用菜单淡化动画。 |
IsMinimizeRestoreAnimationEnabled |
获取一个值,该值指示是否启用窗口最小化和还原动画。 |
IsSelectionFadeEnabled |
获取一个值,该值指示是否启用选择淡化效果。 |
IsSnapToDefaultEnabled |
获取一个值,该值指示是否启用转至默认按钮功能。 |
IsTitleBarGradientEnabled |
获取一个值,该值指示是否启用窗口标题栏的渐变效果。 |
IsToolTipAnimationEnabled |
获取一个值,该值指示是否已启用 ToolTip 动画。 |
KanjiWindowHeight |
为 Windows 的双字节字符集 (DBCS) 版本获取屏幕底部的 Kanji 窗口的高度(以像素为单位)。 |
KeyboardDelay |
获取键盘重复延迟设置。 |
KeyboardSpeed |
获取键盘重复速度设置。 |
MaxWindowTrackSize |
获取窗口的默认最大尺寸(以像素为单位),该窗口具有标题和可调整大小的边框。 |
MenuAccessKeysUnderlined |
获取一个值,该值指示菜单访问键是否始终带下划线。 |
MenuBarButtonSize |
获取菜单栏按钮的默认宽度和菜单栏的高度(均以像素为单位)。 |
MenuButtonSize |
获取菜单栏按钮的默认尺寸(以像素为单位)。 |
MenuCheckSize |
获取菜单选中标记区域的默认大小的尺寸(以像素为单位)。 |
MenuFont |
获取用于在菜单上显示文本的字体。 |
MenuHeight |
获取一个菜单行的高度(以像素为单位)。 |
MenuShowDelay |
获取鼠标光标位于子菜单项上时系统等待显示一个层叠快捷菜单的时间(以毫秒为单位)。 |
MidEastEnabled |
获取一个值,该值指示操作系统是否可使用希伯来语和阿拉伯语。 |
MinimizedWindowSize |
获取正常的最小化窗口的尺寸(以像素为单位)。 |
MinimizedWindowSpacingSize |
获取排列最小化窗口时分配给每个最小化窗口的区域的尺寸(以像素为单位)。 |
MinimumWindowSize |
获取窗口的最小宽度和高度(以像素为单位)。 |
MinWindowTrackSize |
获取在拖动调整大小过程中窗口可能占用的默认最小尺寸(以像素为单位)。 |
MonitorCount |
获取桌面上显示监视器的数目。 |
MonitorsSameDisplayFormat |
获取一个值,该值指示是否所有显示监视器都使用相同的像素颜色格式。 |
MouseButtons |
获取鼠标上的按钮数。 |
MouseButtonsSwapped |
获取一个值,该值指示是否已交换鼠标左右按钮的功能。 |
MouseHoverSize |
获取特定矩形的尺寸(以像素为单位),鼠标指针必须在该矩形范围内停留达到鼠标悬停时间后,才会生成鼠标悬停消息。 |
MouseHoverTime |
获取一个以毫秒为单位的时间,鼠标指针必须在悬停矩形中停留该时间后,才会生成鼠标悬停消息。 |
MousePresent |
获取一个值,该值指示是否已安装指点设备。 |
MouseSpeed |
获取当前鼠标的速度。 |
MouseWheelPresent |
获取一个值,该值指示是否安装了带有鼠标轮的鼠标。 |
MouseWheelScrollDelta |
获取单次鼠标轮旋转增量的增量值。 |
MouseWheelScrollLines |
获取滚动鼠标轮时所滚动过的行数。 |
NativeMouseWheelSupport |
获取一个值,该值指示是否安装了带有鼠标轮的鼠标。 |
Network |
获取一个值,该值指示是否存在网络连接。 |
PenWindows |
获取一个值,该值指示是否已安装 Microsoft Windows for Pen Computing 扩展。 |
PopupMenuAlignment |
获取与相应菜单栏项对齐的弹出菜单的边。 |
PowerStatus |
获取当前的系统电源状态。 |
PrimaryMonitorMaximizedWindowSize |
获取主监视器上最大化窗口的默认尺寸(以像素为单位)。 |
PrimaryMonitorSize |
获取主显示器的当前视频模式的尺寸(以像素为单位)。 |
RightAlignedMenus |
获取一个值,该值指示下拉菜单是否与相应的菜单栏项右对齐。 |
ScreenOrientation |
获取屏幕的方向。 |
Secure |
获取一个值,该值指示当前操作系统上是否存在安全管理器。 |
ShowSounds |
获取一个值,该值指示用户是否希望应用程序在以音频形式表示信息时以可视形式表示信息。 |
SizingBorderWidth |
获取被调整窗口的外围调整边框的宽度,以像素为单位。 |
SmallCaptionButtonSize |
获取小标题按钮的宽度和小标题的高度(均以像素为单位)。 |
SmallIconSize |
获取小图标的尺寸(以像素为单位)。 |
TerminalServerSession |
获取一个值,该值指示调用进程是否与终端服务客户端会话相关联。 |
ToolWindowCaptionButtonSize |
获取小标题按钮的尺寸(以像素为单位)。 |
ToolWindowCaptionHeight |
获取工具窗口标题的高度(以像素为单位)。 |
UIEffectsEnabled |
获取一个值,该值指示是已启用还是已禁用用户界面 (UI) 效果。 |
UserDomainName |
获取用户所属的域的名称。 |
UserInteractive |
获取一个值,该值指示当前进程是否在用户交互模式中运行。 |
UserName |
获取与当前线程相关联的用户名。 |
VerticalFocusThickness |
获取系统聚焦框上下边缘的粗细(以像素为单位)。 |
VerticalResizeBorderThickness |
获取在正调整大小的窗口周围的大小调整边框的上边缘和下边缘的粗细(以像素为单位)。 |
VerticalScrollBarArrowHeight |
获取垂直滚动条上箭头位图的高度(以像素为单位)。 |
VerticalScrollBarThumbHeight |
获取垂直滚动条中滚动框的高度(以像素为单位)。 |
VerticalScrollBarWidth |
获取垂直滚动条的默认宽度(以像素为单位)。 |
VirtualScreen |
获取虚拟屏幕的界限。 |
WorkingArea |
获取屏幕的工作区域的大小(以像素为单位)。 |
方法
GetBorderSizeForDpi(Int32) |
获取给定 DPI 值的平面样式窗口边框或系统控件边框的粗细(以像素为单位)。 |
GetHorizontalScrollBarArrowWidthForDpi(Int32) |
获取水平滚动条上箭头位图的宽度(以像素为单位)。 |
GetHorizontalScrollBarHeightForDpi(Int32) |
获取给定 DPI 值的水平滚动条的默认高度(以像素为单位)。 |
GetMenuFontForDpi(Int32) |
获取字体,该字体用于显示更改给定显示设备的 DPI 的菜单上的文本。 |
GetVerticalScrollBarWidthForDpi(Int32) |
获取给定 DPI 值的垂直滚动条的默认高度(以像素为单位)。 |
VerticalScrollBarArrowHeightForDpi(Int32) |
获取垂直滚动条箭头位图的高度(以像素为单位)。 |