Sysinfo 控件

SysInfo 控件用来响应操作系统发送给所有应用程序的系统消息。于是应用程序在必要时就可适应操作系统的变化。

语法

SysInfo

说明

用 SysInfo 控件可监视操作系统信息，还可响应系统事件。该控件的特点如下所列：

  • 与系统变化相关的事件（例如，DisplayChanged、TimeChanged 以及 SettingChanged 事件）。

  • 电源状态事件及属性（例如，PowerSuspend、PowerResume 事件及 ACStatus 和 BatteryStatus 属性）。

  • Plug 和 Play 事件（例如，DeviceArrival 和 DeviceRemoveComplete 事件）。

  • 操作系统属性（例如，OSVersion 和 WorkAreaHeight 属性）。


Topic Not Found

未找到该主题

未找到相匹配的主题。可能的原因和解决方法如下：

  • 包含目标主题的文件 (.chm) 没有位于指定的位置。

    解决方法：重新运行 MSDN Library的安装。

  • 包含当前主题或目标主题的文件 (.chm) 已经过时，并且链接不再有效。

    解决方法：安装最新版本的 MSDN Library。

  • MSDN Library CD 不在 CD-ROM 中。

    解决方法：将 MSDN Library CD 装入 CD-ROM 中。


ConfigChangeCancelled 事件

当操作系统向所有应用程序发送一个取消硬件配置文件变化的消息时，该事件发生。

语法

Private Sub object_ConfigChangeCancelled([index As Integer])

ConfigChangeCancelled 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。

说明

应该用此事件清除在 QueryChangeConfig 事件过程中开始的任何处理。


ConfigChanged 事件

当系统硬件配置文件发生改变时，该事件发生。

语法

Private Sub object_ConfigChanged([index As Integer,] ByVal oldconfignum As Long, ByVal newconfignum As Long)

ConfigChanged 事件包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
oldconfignum | 对旧系统配置，oldconfignum Windows 注册表中的关键字名称。
newconfignum | 对新系统配置，newconfignum Windows 注册表中的关键字名称。

说明

为连接或断开便携机，当系统恢复操作后，该事件发生。


DeviceArrival 事件

当添加新设备到系统中时，该事件发生。

语法

Private Sub object_DeviceArrival([index As Integer,] ByVal devicetype As Long, ByVal deviceid As Long, ByVal devicename As String, ByVal devicedata As Long)

DeviceArrival 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
devicetype | 一个值，指示已添加设备的类型，详见“设置值”。
deviceid | 识别设备的值，详见“设置值”。
devicename | 对 DeviceTypePort 之外的所有 devicetype 设置值均为Null。当 devicetype 值为 DeviceTypePort 时，devicename 为 dbcp_name。
devicedata | “设置值”中描述的值。

设置值

devicetype 的设置值如下：

常数 | 值 | 描述
DeviceTypeOEM | 0 | OEM 定义的设备类型。
DeviceTypeDevNode | 1 | Devnode 号 (Windows 95)。
DeviceTypeVolume | 2 | 逻辑卷标（磁盘驱动器）。
DeviceTypePort | 3 | 串行或并行端口。
DeviceTypeNet | 4 | 网络资源

deviceid 的设置值如下：

devicetype 设置值 | deviceid 设置值
DeviceTypeOEM | dbco_identifier
DeviceTypeDevNode | dbcd_devnode
DeviceTypeVolume | dbcv_unitmask
DeviceTypePort | Null
DeviceTypeNet | dbcn_resource

devicedata 的设置值如下：

devicetype 设置值 | devicedata 设置值
DeviceTypeOEM | dbco_suppfunc
DeviceTypeDevNode | Null
DeviceTypeVolume | dbcv_flags
DeviceTypePort | Null
DeviceTypeNet | dbcn_flags

说明

如果应用程序可以动态地使用新硬件，则此事件非常有用。


DeviceOtherEvent 事件

该事件是一个通知事件，不会映射到通用事件中。

语法

Private Sub object_DeviceOtherEvent([index As Integer,] ByVal devicetype As Long, ByVal eventname As String, ByVal datapointer As Long)

DeviceOtherEvent 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
devicetype | 一个值，指示处理事件的设备类型，详见“设置值”。
eventname | 字符串表达式，其值是事件的名称。
datapointer | 指向设备专用数据的长值。

设置值

devicetype 的设置值如下：

常数 | 值 | 描述
DeviceTypeOEM | 0 | OEM定义的设备类型。
DeviceTypeDevNode | 1 | Devnode号 (Windows 95)。
DeviceTypeVolume | 2 | 逻辑卷标（磁盘驱动器）。
DeviceTypePort | 3 | 串行或并行端口。
DeviceTypeNet | 4 | 网络资源


DeviceQueryRemove 事件

从系统中删除设备之前，该事件发生。

语法

Private Sub object_DeviceQueryRemove([index As Integer,] ByVal devicetype As Long, ByVal deviceid As Long, ByVal devicename As String, ByVal devicedata As Long, cancel As Boolean)

DeviceQueryRemove 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数字表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
devicetype | 一个值，指示已添加设备的类型，详见“设置值”。
deviceid | 识别设备的值，详见“设置值”。
devicename | 对 DeviceTypePort 之外的所有 devicetype 设置值均为Null。当 devicetype 值为 DeviceTypePort 时，devicename 为 dbcp_name。
devicedata | “设置值”中描述的值。
cancel | 布尔表达式，详见“设置值”。

设置值

devicetype 的设置值如下：

常数 | 值 | 描述
DeviceTypeOEM | 0 | OEM 定义的设备类型。
DeviceTypeDevNode | 1 | Devnode 号 (Windows 95)。
DeviceTypeVolume | 2 | 逻辑卷标（磁盘驱动器。）
DeviceTypePort | 3 | 串行或并行端口。
DeviceTypeNet | 4 | 网络资源

deviceid 的设置值如下：

devicetype 设置值 | deviceid 设置值
DeviceTypeOEM | dbco_identifier
DeviceTypeDevNode | dbcd_devnode
DeviceTypeVolume | dbcv_unitmask
DeviceTypePort | Null
DeviceTypeNet | dbcn_resource

devicedata 的设置值如下：

devicetype 设置值 | devicedata 设置值
DeviceTypeOEM | dbco_suppfunc
DeviceTypeDevNode | Null
DeviceTypeVolume | dbcv_flags
DeviceTypePort | Null
DeviceTypeNet | dbcn_flags

cancel 的设置值如下：

设置值 | 描述
True | 系统禁止删除设备。
False | 系统允许删除设备。

说明

在删除设备之前，对删除设备作出响应的进程向操作系统发送必要的信息，该事件仅在此时发生。


DeviceQueryRemoveFailed 事件

当 DeviceQueryRemove 事件代码取消了删除设备的操作时，该事件发生。

语法

Private Sub object_DeviceQueryRemoveFailed([index As Integer,] ByVal devicetype As Long, ByVal deviceid As Long, ByVal devicename As String, ByVal devicedata As Long, cancel As Boolean)

DeviceQueryRemoveFailed 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
devicetype | 一个值，指示已添加设备的类型，详见“设置值”。
deviceid | 识别设备的值，详见“设置值”。
devicename | 对 DeviceTypePort 之外的所有 devicetype 设置值均为Null。当 devicetype 值为 DeviceTypePort 时，devicename 为 dbcp_name。
devicedata | “设置值”中描述的值。
cancel | 布尔表达式，详见“设置值”。

设置值

devicetype 的设置值如下：

常数 | 值 | 描述
DeviceTypeOEM | 0 | OEM 定义的设备类型。
DeviceTypeDevNode | 1 | Devnode 号 (Windows 95)。
DeviceTypeVolume | 2 | 逻辑卷标（磁盘驱动器）。
DeviceTypePort | 3 | 串行或并行端口。
DeviceTypeNet | 4 | 网络资源

deviceid 的设置值如下：

devicetype 设置值 | deviceid 设置值
DeviceTypeOEM | dbco_identifier
DeviceTypeDevNode | dbcd_devnode
DeviceTypeVolume | dbcv_unitmask
DeviceTypePort | Null
DeviceTypeNet | dbcn_resource

devicedata 的设置值如下：

devicetype 设置值 | devicedata 设置值
DeviceTypeOEM | dbco_suppfunc
DeviceTypeDevNode | Null
DeviceTypeVolume | dbcv_flags
DeviceTypePort | Null
DeviceTypeNet | dbcn_flags

cancel 的设置值如下：

设置值 | 描述
True | 系统禁止删除设备。
False | 系统允许删除设备。


DeviceRemoveComplete 事件

该事件在删除设备后发生。

语法

Private Sub object_DeviceQueryRemove([index As Integer,] ByVal devicetype As Long, ByVal deviceid As Long, ByVal devicename As String, ByVal devicedata As Long, cancel As Boolean)

DeviceRemoveComplete 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
devicetype | 一个值，指示已添加设备的类型，详见“设置值”。
deviceid | 识别设备的值，详见“设置值”。
devicename | 对 DeviceTypePort 之外的所有 devicetype 设置值均为 Null。当 devicetype 值为 DeviceTypePort 时，devicename 为 dbcp_name。
devicedata | “设置值”中描述的值。
cancel | 布尔表达式值，详见“设置值”。

设置值

devicetype 的设置值如下：

常数 | 值 | 描述
DeviceTypeOEM | 0 | OEM 定义的设备类型。
DeviceTypeDevNode | 1 | Devnode 号 (Windows 95)。
DeviceTypeVolume | 2 | 逻辑卷标（磁盘驱动器）。
DeviceTypePort | 3 | 串行或并行端口。
DeviceTypeNet | 4 | 网络资源

deviceid 的设置值如下：

devicetype 设置值 | deviceid 设置值
DeviceTypeOEM | dbco_identifier
DeviceTypeDevNode | dbcd_devnode
DeviceTypeVolume | dbcv_unitmask
DeviceTypePort | Null
DeviceTypeNet | dbcn_resource

devicedata 的设置值如下：

devicetype 设置值 | devicedata 设置值
DeviceTypeOEM | dbco_suppfunc
DeviceTypeDevNode | Null
DeviceTypeVolume | dbcv_flags
DeviceTypePort | Null
DeviceTypeNet | dbcn_flags

cancel 的设置值如下：

设置值 | 描述
True | 系统禁止删除设备。
False | 系统允许删除设备。

说明

在某些情况下，即使没有其它的设备删除事件发生，也可能产生该事件。


DeviceRemovePending 事件

当所有应用程序都同意删除某设备且准备将设备删除之时，该事件发生。

语法

Private Sub object_DeviceRemovePending([index As Integer,] ByVal devicetype As Long, ByVal deviceid As Long, ByVal devicename As String, ByVal devicedata As Long, cancel As Boolean)

DeviceRemovePending 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
devicetype | 一个值，指示已添加设备的类型，详见“设置值”。
deviceid | 识别设备的值，详见“设置值”。
devicename | 对 DeviceTypePort 之外的所有 devicetype 设置值均为 Null。当 devicetype 值为 DeviceTypePort 时，devicename 为 dbcp_name。
devicedata | “设置值”中描述的值。
cancel | 布尔表达式值，详见“设置值”。

设置值

devicetype 的设置值如下：

常数 | 值 | 描述
DeviceTypeOEM | 0 | OEM 定义的设备类型。
DeviceTypeDevNode | 1 | Devnode 号 (Windows 95)。
DeviceTypeVolume | 2 | 逻辑卷标（磁盘驱动器）。
DeviceTypePort | 3 | 串行或并行端口。
DeviceTypeNet | 4 | 网络资源

deviceid 的设置值如下：

devicetype 设置值 | deviceid 设置值
DeviceTypeOEM | dbco_identifier
DeviceTypeDevNode | dbcd_devnode
DeviceTypeVolume | dbcv_unitmask
DeviceTypePort | Null
DeviceTypeNet | dbcn_resource

devicedata 的设置值如下：

devicetype 设置值 | devicedata 设置值
DeviceTypeOEM | dbco_suppfunc
DeviceTypeDevNode | Null
DeviceTypeVolume | dbcv_flags
DeviceTypePort | Null
DeviceTypeNet | dbcn_flags

cancel 的设置值如下：

设置值 | 描述
True | 系统禁止删除设备。
False | 系统允许删除设备。


DevModeChange 事件

当修改设备模式设置值时，该事件发生。

语法

Private Sub object_DevModeChange([index As Integer,] ByVal devicename As String)

DevModeChange 事件语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
devicename | 字符串表达式，用来识别 Windows 注册表中指定的设备名。


DisplayChanged 事件

当屏幕分辨率改变时，该事件发生。

语法

Private Sub object_DisplayChanged([index As Integer])

DisplayChanged 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。

说明

利用此事件调整应用程序界面，以适应屏幕分辨率的变化。


DisplayChanged 事件示例

在屏幕分辨率改变后，该示例测试活动窗体的大小，而且，在窗体超出屏幕可见区域时还要调整其尺寸。要运行此例，请在窗体中放置 SysInfo 控件，并将下列代码粘贴到 SysInfo 控件的 DisplayChanged 事件中，然后运行下例，改变屏幕的分辨率。

Private Sub SysInfo1_DisplayChanged()
    If Screen.ActiveForm.Width > SysInfo1.WorkAreaWidth Then
        Screen.ActiveForm.Left = SysInfo1.WorkAreaLeft
        Screen.ActiveForm.Width = SysInfo1.WorkAreaWidth
    End If
    If Screen.ActiveForm.Height > SysInfo1.WorkAreaHeight Then
        Screen.ActiveForm.Top = SysInfo1.WorkAreaTop
        Screen.ActiveForm.Height = SysInfo1.WorkAreaHeight
    End If
End Sub


PowerQuerySuspend 事件

当系统电源将被挂起时，该事件发生。

语法

Private Sub object_PowerQuerySuspend([index As Integer,] cancel As Boolean)

PowerQuerySuspend 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
cancel | 布尔表达式，它指示是否禁止系统进入挂起模式，详见“设置值”。

设置值

cancel 的设置值如下：

设置值 | 描述
True | 禁止系统进入挂起模式。
False | （缺省值）允许系统进入挂起模式。


PowerResume 事件

当系统脱离挂起模式，而应用程序恢复正常操作时，该事件发生。

语法

Private Sub object_PowerResume([index As Integer])

PowerResume 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。


PowerStatusChanged 事件

当系统电源状态改变时，该事件发生。

语法

Private Sub object_PowerStatusChanged([index As Integer])

PowerStatusChanged 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。

说明

系统电源的下列变化状态将触发 PowerStatusChanged 事件：

  • 电池能源不足

  • 电源从 AC 切换到电池或从电池切换到 AC

  • 电池充电结束


PowerStatusChanged 事件示例

该示例在每次电源状态变化时更新 Label 控件，使应用程序及时显示当前电池状态信息。要运行此例，请在窗体中放置 SysInfo 控件和 Label 控件。将代码粘贴到 SysInfo 控件的 PowerStatusChanged 事件中。然后运行此例。

Private Sub SysInfo1_PowerStatusChanged()
   Select Case SysInfo1.BatteryStatus
      Case 1
         Label1.Caption = "Battery OK"
      Case 2
         Label1.Caption = "Battery Low"
      Case 4
         Label1.Caption = "Battery Critical"
      Case 8
         Label1.Caption = "Battery Charging"
      Case 128, 255
         Label1.Caption = "No Battery Status"
   End Select
End Sub


PowerSuspend 事件

当系统即将进入挂起模式之前，该事件直接发生。

语法

Private Sub object_PowerSuspend([index As Integer])

PowerSuspend 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。


QueryChangeConfig 事件

在连接或断开系统之前请求改变当前硬件配置文件时，改变硬件配置文件可通过操作系统用户界面进行，也可通过请求。

语法

Private Sub object_QueryChangeConfig([index As Integer,] cancel As Boolean)

QueryChangeConfig 事件语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
cancel | 布尔表达式，详见“设置值”。

设置值

cancel 的设置值如下：

设置值 | 描述
True | 禁止系统改变硬件配置文件。
False | （缺省值）允许系统改变硬件配置文件。


SettingChanged 事件

当应用程序修改系统范围的参数时，该事件发生。

语法

Private Sub object_SettingChanged([index As Integer,] ByVal item As Integer, ByVal section As Integer)

SettingChanged 事件语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。
item | 一个长整数，包含已改变的系统参数信息。如果消息不是从 USER32 中发出的，则系统参数（它是来自 WM_SETTINGCHANGE 的 WPARAM，对应 win32 API 例程 SystemParameterInfo 的参数）总是为零。控制面板中的许多小应用程序都可使消息得以发送出来，但它们自己完成此操作，而不必通过 USER32 来做。在这些条件下，该事件中的值可能是零。
section | 字符串表达式，其值是一个部分的名称，该部分包含已改变的系统参数。

说明

可用 SettingChanged 事件检测许多有用的系统变化。其中可检测出来的最有用的变化是在移动或改变 Windows 95 任务栏的大小时所引起的变化。


SysColorsChanged 事件

当应用程序或“控制面板”改变系统颜色设置时，该事件发生。

语法

Private Sub object_SysColorsChanged([index As Integer])

SysColorsChanged 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。


TimeChanged 事件

当应用程序或“控制面板”改变系统时间时，该事件发生。

语法

Private Sub object_TimeChanged([index As Integer])

TimeChanged 事件的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
index | 数值表达式，如果控件在控件数组中，则该数值表达式的值是控件的索引。


ACStatus属性

返回一值，指示系统是否使用 AC 电源。

语法

object.ACStatus

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

设置值

ACStatus 属性的设置值如下：

设置值 | 描述
0 | 系统未使用 AC 电源。
1 | 系统正在使用 AC 电源。
255 | AC 电源状态未知。


ACStatus 属性示例

该示例用窗体中的 Label 控件显示系统的 AC 电源状态。要运行此例，请在窗体中放置 SysInfo 控件、Label 控件及 Timer 控件，然后将下列代码粘贴到 Timer 控件的 Timer 事件中，再将 Timer 控件的 Interval 属性值设置成 5000，然后运行此例。

Private Sub Timer1_Timer()
   Select Case SysInfo1.ACStatus
      Case 0
         Label1.Caption = "AC Power: Off"
      Case 1
         Label1.Caption = "AC Power: On"
      Case 255
         Label1.Caption = "AC Power: Unknown"
   End Select
End Sub


BatteryFullTime 属性

返回一值，指示电池在完全充电状态下的使用寿命。

语法

object.BatteryFullTime

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

BatteryFullTime 属性返回电池在完全充电状态下以秒为单位的使用寿命。如果不知道寿命值，则返回值 &HFFFFFFFF。


BatteryFullTime 属性示例

该示例以小时和分的形式显示电池的使用寿命。要运行此例，请在窗体中放置 SysInfo 控件及 CommandButton 控件，将下列代码粘贴到 CommandButton 控件的 Click 事件中，然后运行此例。

Private Sub Command1_Click()
    ' BatteryLifeTime 属性示例
    If SysInfo1.BatteryLifeTime <> &HFFFFFFFF Then
        Dim TimeLeft As String
        Dim TimeTotal As String
        Dim temp
        temp = TimeSerial(0, 0, SysInfo1.BatteryLifeTime)
        TimeLeft = Format(temp, "h:mm")
        temp = TimeSerial(0, 0, SysInfo1.BatteryFullTime)
        TimeTotal = Format(temp, "h:mm")
        MsgBox TimeLeft & " time left from " & TimeTotal & " total."
    Else
        MsgBox "Cannot determine remaining battery time."
    End If
End Sub


BatteryLifePercent 属性

返回电池所剩能量占完全充电时能量的百分比。

语法

object.BatteryLifePercent

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

设置值

BatteryLifePercent 属性的设置值如下：

设置值 | 描述
0 - 100 | 电池所剩能量的百分比。
255 | 电池充电状态未知。


BatteryLifePercent 属性示例

该示例用窗体中的 ProgressBar 控件显示系统电池剩余能量的状态。要运行此例，请在窗体中放置 SysInfo 控件、ProgressBar 控件以及 Timer 控件。将下列代码粘贴到 Timer 控件的 Timer 事件中，再将 Timer 控件的 Interval 属性值置为 5000，然后运行此例。

Private Sub Timer1_Timer()
   If SysInfo1.BatteryLifePercent <> 255 Then
      ProgressBar1.Value = SysInfo1.BatteryLifePercent
      ProgressBar1.Enabled = True
   Else
      ProgressBar1.Value = 0
      ProgressBar1.Enabled = False
   End If
End Sub


BatteryLifeTime 属性

返回一值，指示电池的剩余寿命。

语法

object.BatteryLifeTime

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

BatteryLifeTime 属性返回电池以秒为单位的剩余寿命值。如果电池的剩余寿命未知，则返回值 &HFFFFFFFF。


BatteryLifeTime 属性示例

该示例以小时和分的形式显示电池的剩余寿命值。要运行此例，请在窗体中放置 SysInfo 控件及 CommandButton 控件。将下列代码粘贴到 CommandButton 控件的 Click 事件中，然后运行此例。

Private Sub Command1_Click()
    ' BatteryLifeTime 属性示例
    If SysInfo1.BatteryLifeTime <> &HFFFFFFFF Then
        Dim TimeLeft As String
        Dim TimeTotal As String
        Dim temp
        temp = TimeSerial(0, 0, SysInfo1.BatteryLifeTime)
        TimeLeft = Format(temp, "h:mm")
        temp = TimeSerial(0, 0, SysInfo1.BatteryFullTime)
        TimeTotal = Format(temp, "h:mm")
        MsgBox TimeLeft & " time left from " & TimeTotal & " total."
    Else
        MsgBox "Cannot determine remaining battery time."
    End If
End Sub


BatteryStatus 属性

返回一值，指示电池的充电状态。

语法

object.BatteryStatus

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

设置值

BatteryStatus 属性的设置值如下：

设置值 | 描述
1 | 电池电量充足。
2 | 电池电量不足。
4 | 电池电量处于临界状态。
8 | 电池正在充电。
128 | 系统无电池。
255 | 电池充电状态未知。


BatteryStatus 属性示例

该示例在电源状态发生变化时更新 Label 控件，使应用程序及时显示当前的电池状态信息。要运行此例，请在窗体中放置 SysInfo 控件和 Label 控件。将此代码粘贴到 SysInfo 控件的 PowerStatusChanged 事件中，然后运行此例。

Private Sub SysInfo1_PowerStatusChanged()
   Select Case SysInfo1.BatteryStatus
      Case 1
         Label1.Caption = "Battery OK"
      Case 2
         Label1.Caption = "Battery Low"
      Case 4
         Label1.Caption = "Battery Critical"
      Case 8
         Label1.Caption = "Battery Charging"
      Case 128, 255
         Label1.Caption = "No Battery Status"
   End Select
End Sub


Index 属性

返回或设置唯一标识控件数组中某一控件的数。只有当控件是控件数组的一部分时，才可用该属性。

语法

object[(number)].Index

Index 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
number | 数值表达式，其值为一整数，识别控件数组中的个别控件。

设置值

number 的设置值如下：

设置值 | 描述
No value | （缺省值）不是控件数组的部分。
0 to 32,767 | 控件数组的部分。指定一个大于或等于 0 的整数，识别控件数组中的控件。控件数组中的所有控件都有相同的 Name 属性。Visual Basic 将自动分配控件数组中的下一个可用整数。

说明

由于控件数组中的元素共享同一个 Name 属性设置值，所以在代码中必须用 Index 属性指定数组中的特定控件。Index 必须是一个整数（或值为整数的数值表达式），它在控件数组名称后面的括号中，例如，MyButtons(3)。也可用 Tag 属性值区分控件数组中的控件。

当数组中的控件识别出发生的事件时，Visual Basic 将调用控件数组的事件过程并将 Index 设置值作为附加参数传递过去。当用 Load 语句在运行时动态创建控件，或用 Unload 语句删除控件时，也会用到该属性。

尽管在缺省方式下，Visual Basic 分配下一个可用的整数作为控件数组中新控件的 Index 值，还是可不用这个分配的值而跳过整数。此外，还可对数组中的第一个控件，将 Index 的值设置为非 0 的整数。如果代码中引用的 Index 值不识别控件数组中的控件，则将引起 Visual Basic 运行时错误。

注意 为从控件数组中删除控件，需改变控件的 Name 属性值，并删除其 Index 属性设置值。


Left 属性（SysInfo 控件）

返回或设置对象的内部左边界及其容器的左边界之间的距离。

语法

object.Left [= value]

Left 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
value | 指定距离的数值表达式。

说明

对控件来说，其 Left 属性的表示单位总是依赖于容器的坐标系统。当用户或代码移动对象时，则这些属性值将改变。


Name 属性

返回代码中用来标识 SysInfo 控件的名称。

语法

object.Name

object 所在处代表对象表达式，其值是“应用于”列表中的对象。如果省略 object，则假定与活动窗体模块相关联的那个窗体为 object。

说明

新对象的缺省名称是对象类型加上一个特定的整数。例如，第一个新窗体对象是 Form1，一个新 SysInfo 控件是 SysInfo1，而在窗体中创建的第三个TextBox 控件是 Text3。

对象的 Name 属性必须以字母开头，最多可有 40 个字符。其中可包括数字和下划线 (_) 字符，但不能有标点符号及空格。窗体不能与其它公用对象同名，如 Clipboard、Screen 或 App。尽管 Name 属性值可以是关键字、属性名或其它对象的名字，但这样做会在代码中产生冲突。

将 Name 属性设置成相同值就可创建相同类型的控件组成的数组。例如，在将一个组中的所有选项按钮名设置成 MyOpt 时，Visual Basic 对每个控件的 Index 属性分配一个唯一的整数，以区分数组中的其它元素。两个不同类型的控件不能用同一个名字。


OSBuild 属性

该属性返回值提供运行当前应用程序的操作系统信息。它在运行时不可使用。

语法

object.OSBuild

object 所在处代表对象表达式，其值是“应用于”列表中的一个对象。


OSPlatform 属性

返回一标识操作系统的值，应用程序当前在该操作系统下运行。在设计时不可使用。

语法

object.OSPlatform

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

返回值

OSPlatform 属性返回以下值：

值 | 描述
0 | Win32s
1 | Windows 95
2 | Windows NT


OSPlatform 属性示例

该示例显示当前操作系统类型及其版本号。要运行此例，请在窗体中放置 SysInfo 控件及 CommandButton 控件。将此例粘贴到窗体的声明部分，运行工程并单击 CommandButton。

Private Sub Command1_Click()
   Dim MsgEnd As String
   Select Case SysInfo1.OSPlatform
      Case 0
         MsgEnd = "Unidentified"
      Case 1
         MsgEnd = "Windows 95, ver. " & CStr(SysInfo1.OSVersion)
      Case 2
         MsgEnd = "Windows NT, ver. " & CStr(SysInfo1.OSVersion)
   End Select
   MsgBox "System: " & MsgEnd
End Sub


OSVersion 属性

返回识别操作系统版本的值，应用程序当前在该操作系统下运行。在设计时不可使用。

语法

object.OSVersion

object 所在处代表对象表达式，其值是“应用于”列表中的对象。


OSVersion 属性示例

该示例显示当前操作系统类型及其版本号。要运行此例，请在窗体中放置 SysInfo 控件及 CommandButton 控件，然后将此例粘贴到窗体的声明部分，运行工程并单击 CommandButton。

Private Sub Command1_Click()
   Dim MsgEnd As String
   Select Case SysInfo1.OSPlatform
      Case 0
         MsgEnd = "Unidentified"
      Case 1
         MsgEnd = "Windows 95, ver. " & CStr(SysInfo1.OSVersion)
      Case 2
         MsgEnd = "Windows NT, ver. " & CStr(SysInfo1.OSVersion)
   End Select
   MsgBox "System: " & MsgEnd
End Sub


ScrollBarSize 属性

以缇为单位返回系统滚动条的宽度度量值。

语法

object.ScrollBarSize

object 所在处代表对象表达式，其值是“应用于”列表中的对象。


Tag 属性

返回或设置一个表达式，它存储程序需要的额外数据。与其它属性不同，Visual Basic 不使用 Tag 属性的值；可用该属性识别对象。

语法

object.Tag

object.Tag [= expression]

Tag 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
expression | 识别对象的字符串表达式。缺省值是一个零长度的字符串 ("")。

说明

可用该属性为对象分配一个标识字符串而不会影响此对象的任何其它属性设置值也不会产生副作用。


Top 属性

返回或设置对象的内部上边界与其容器的上边界之间的距离。

语法

object.Top [= value]

Top 属性的语法包含下面部分：

部分 | 描述
object | 对象表达式，其值是“应用于”列表中的对象。
value | 指定距离的数值表达式。


WorkAreaHeight 属性

返回对 Windows 95 的任务栏进行调整所得的可见桌面的高度。在设计时不可使用。

语法

object.WorkAreaHeight

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

当任务栏出现在屏幕的顶部或底部时，WorkAreaHeight 属性将指出可见桌面减去任务栏后的高度。


WorkAreaHeight 属性示例

该示例测试活动窗体在屏幕分辨率改变后的尺寸，如果窗体超出屏幕可见区域，此例还将调整窗体的大小。要运行此例，请将 SysInfo 控件放置到窗体中。将下列代码粘贴到 SysInfo 控件的 DisplayChanged 事件中。运行此例，改变屏幕的分辨率。

Private Sub SysInfo1_DisplayChanged()
    If Screen.ActiveForm.Width > SysInfo1.WorkAreaWidth Then
        Screen.ActiveForm.Left = SysInfo1.WorkAreaLeft
        Screen.ActiveForm.Width = SysInfo1.WorkAreaWidth
    End If
    If Screen.ActiveForm.Height > SysInfo1.WorkAreaHeight Then
        Screen.ActiveForm.Top = SysInfo1.WorkAreaTop
        Screen.ActiveForm.Height = SysInfo1.WorkAreaHeight
    End If
End Sub


WorkAreaLeft 属性

返回对 Windows 95 任务栏进行调整所得的可见桌面的左边界坐标。在设计时不可使用。

语法

object.WorkAreaLeft

object 所在处代表对象表达式，其值是“应用于”列表中的对象。


WorkAreaLeft 属性示例

该示例测试活动窗体在屏幕分辨率改变后的尺寸，如果窗体超出屏幕可见区域，则此例还将调整窗体的大小。要运行此例，请将 SysInfo 控件放置到窗体中。将下列代码粘贴到 SysInfo 控件的 DisplayChanged 事件中。运行此例，改变屏幕的分辨率。

Private Sub SysInfo1_DisplayChanged()
    If Screen.ActiveForm.Width > SysInfo1.WorkAreaWidth Then
        Screen.ActiveForm.Left = SysInfo1.WorkAreaLeft
        Screen.ActiveForm.Width = SysInfo1.WorkAreaWidth
    End If
    If Screen.ActiveForm.Height > SysInfo1.WorkAreaHeight Then
        Screen.ActiveForm.Top = SysInfo1.WorkAreaTop
        Screen.ActiveForm.Height = SysInfo1.WorkAreaHeight
    End If
End Sub


WorkAreaTop 属性

返回对 Windows 95 任务栏进行调整所得的可见桌面的上边界坐标。在设计时不可使用。

语法

object.WorkAreaTop

object 所在处代表对象表达式，其值是“应用于”列表中的对象。


WorkAreaTop 属性示例

该示例测试活动窗体在屏幕分辨率改变后的尺寸，如果窗体超出屏幕可见区域，则此例还将调整窗体的大小。要运行此例，请将 SysInfo 控件放置到窗体中。将下列代码粘贴到 SysInfo 控件的 DisplayChanged 事件中。运行此例，改变屏幕的分辨率。

Private Sub SysInfo1_DisplayChanged()
    If Screen.ActiveForm.Width > SysInfo1.WorkAreaWidth Then
        Screen.ActiveForm.Left = SysInfo1.WorkAreaLeft
        Screen.ActiveForm.Width = SysInfo1.WorkAreaWidth
    End If
    If Screen.ActiveForm.Height > SysInfo1.WorkAreaHeight Then
        Screen.ActiveForm.Top = SysInfo1.WorkAreaTop
        Screen.ActiveForm.Height = SysInfo1.WorkAreaHeight
    End If
End Sub


WorkAreaWidth 属性

返回对 Windows 95 任务栏进行调整所得的可见桌面的宽度。在设计时不可使用。

语法

object.WorkAreaWidth

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

当任务条出现在屏幕的左或右边沿时，WorkAreaWidth 属性返回可见桌面的宽度减去任务条宽度之后的宽度。


WorkAreaWidth 属性示例

该示例测试活动窗体在屏幕分辨率改变后的尺寸，如果窗体超出屏幕可见区域，则此例还将调整窗体的大小。要运行此例，请将 SysInfo 控件放置到窗体中。将下列代码粘贴到 SysInfo 控件的 DisplayChanged 事件中。运行此例，改变屏幕的分辨率。

Private Sub SysInfo1_DisplayChanged()
    If Screen.ActiveForm.Width > SysInfo1.WorkAreaWidth Then
        Screen.ActiveForm.Left = SysInfo1.WorkAreaLeft
        Screen.ActiveForm.Width = SysInfo1.WorkAreaWidth
    End If
    If Screen.ActiveForm.Height > SysInfo1.WorkAreaHeight Then
        Screen.ActiveForm.Top = SysInfo1.WorkAreaTop
        Screen.ActiveForm.Height = SysInfo1.WorkAreaHeight
    End If
End Sub