在VisualBasic程序中,可以使用WindowsAPI函数来重新启动计算机系统,文本介绍如何退出Windows并关闭计算机系统。
关闭计算机系统
可以使用WindowsAPI的ExitWindowsEx函数来从VisualBasic程序中重新启动计算机系统。要使用该函数,需要将如下声明语句包含在窗体的通常声明部分中:
PrivateDeclareFunctionExitWindowsExLib"user32"(ByValuFlagsAsLong,ByValdwReservedAsLong)AsLong
ExitWindowsEx函数需要2个参数,可以使用一个或多个下面的标识的组合来告诉ExitWindowsEx函数希望进行关机过程。
EWX_FORCE所有的进程都被强制终止。
EWX_LOGOFF所有的进程被强制终止,并且用户退出登录(loggedoff)。
EWX_POWEROFF计算机系统被关机,并且如果支持节电特性,则计算机被物理关机。
EWX_REBOOT计算机系统被关机并重新启动。
EWX_SHUTDOWN计算机被物理地安全地关机。
下面的样例程序中使用了上面的三个标识的组合。该标识组合(EWX_LOGOFF,EWX_FORCE,以及EWX_REBOOT)告诉Windows退出所有正在执行的进程,使用户退出网络登录,使计算机系统处于准备状态以供用户关机。
样例程序
该样例程序显示了如何关闭计算机系统。
1.在VisualBasic中开始一个新的项目,采用缺省的方法建立Form1。
2.将如下常量和声明语句添加到Form1的通常声明部分中(注意该声明语句需要书写在一行内):
PrivateDeclareFunctionExitWindowsExLib"user32"
(ByValuFlagsAsLong,ByValdwReservedAsLong)AsLong
ConstEWX_LOGOFF=0
ConstEWX_SHUTDOWN=1
ConstEWX_REBOOT=2
ConstEWX_FORCE=4
ConstEWX_POWEROFF=8
ConstEWX_RESET=EWX_LOGOFF EWX_FORCE EWX_REBOOT
3.在Form1上添加一个命令按钮控件,采用缺省的方法建立Comand1。将它的Caption属性设置为“重新启动计算机”。
4.将如下代码添加到Command1的单击事件中:
PrivateSubCommand1_Click()
DimXAsLong
X=ExitWindowsEx(EWX_RESET,dwReserved)
EndSub
按下F5来运行上述样例程序,单击命令按钮,即可重新启动计算机系统。