42,Q:在 VB 中终止 Windows95 的运行:
A:在Visual Basic 程序中,可以使用 Windows API 的 ExitWindowsEx 函数来从程序中重新启动计算机系 统。
要使用该函数,需要将如下声明语句包含在窗体的通常声明部分中:
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long,
ByVal dwReserved As Long) As Long
ExitWindowsEx 函数需要 2 个参数,可以使用一个或多个下面的标识的组合来告诉 ExitWindowsEx 函 数希望进行哪种关机过程。
EWX_FORCE 所有进程都被强制终止
EWX_LOGOFF 所有的进程被强制止,并且用户退出登录(logged off)
EWX_POWEROFF 计算机系统被关机,并且如果支持节电特性则计算机被物理关机
EWX_REBOOT 计算机系统被关机并重新启动
EWX_SHUTDOWN 计算机被物理地安全地关机
下面的样例程序中使用了上面的三个标识的组合。该标识组合(EWX_LOGOFF,EWX_FORCE,以及EWX_REBOOT) 告诉 Windows
退出所有正在执行的进程,使用户退出网络登录,使计算机系统处于准备状态以供 用户关机。
样例程序的使用:
1,在 VB 中开始一个新的项目,采用缺省的方法建立 Form1;
2,将如下常量和声明语句添加到 Form1 的通常声明部分中(注意该声明语句需要书写在一行内):
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long,
ByVal dwReserved As Long) As Long
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Const EWX_POWEROFF = 8
Const EWX_RESET = EWX_LOGOFF + EWX_FORCE + EWX_REBOOT
3,在 Form1 上添加一个命令按钮控件,采用缺省的方法建立 Comand1, 将它的 Caption 属性设置为“ 重 新启动计算机”;
4,将如下代码添加到 Command1 的单击事件中:
Private Sub Command1_Click()
Dim X As Long
X = ExitWindowsEx(EWX_RESET, dwReserved)
End Sub
按下 F5 来运行上述样例程序,单击命令按钮,即可重新启动计算机系统。 |