在VB应用程序中控制Win95的启动

2/27/2006来源:Visual Basic教程人气:7684

----在用VisualBasic编写Win95应用程序时,有时可能希望由程序来控制计算机的启动功能,比如当应用程序对系统注册表作了修改后需要重新启动Win95。

----那么,如何在应用程序中控制Win95的启动呢?由于VisualBasic自身没有提供相关的命令和函数,我们只好求助于WindowsAPI函数ExitWindowsEx,调用该函数,我们可以完成重新启动、关机、强制关闭所有应用程序或重新登录等操作,下面是该函数的函数声明:

DeclareFunctionExitWindowsExLib
"user32"(ByValuFlagsAsLong,
ByValdwReservedAsLong)AsLong

----ExitWindowsEx函数有两个参数,其中第二个为保留参数,第一个参数uFlags用来决定调用函数时的具体动作,可能的取值和含义见下表:
Uflags的值含义
0重新登录
1关闭计算机
2重新启动
4强制关闭所有应用程序

----下面以一个小程序为例,介绍如何在程序中控制Win95的启动:
----新建一个工程,添加一个普通窗体Form1,在窗体上放置一个Frame控件Frame1、一个命令按钮控件Command1和一个包含4个元素的选项按钮控件数组Option1。再给工程添加一个代码模块Module1,在其

----中写上如下的声明(注意ExitWindowsEx的函数声明必须写在一行上):

PublicConstLOGOFF=0
PublicConstSHUTDOWN=1
PublicConstREBOOT=2
PublicConstCLOSEPROGRAMES=4
DeclareFunctionExitWindowsExLib"user32"
(ByValuFlagsAsLong,ByValdwReservedAsLong)AsLong

在窗体Form1的代码模块中编写
Command1的Click事件过程如下:

PrivateSubCommand1_Click()
DimHowAsLong
IfOption1(0).Value=TrueThen
How=LOGOFF'选择了重新登录
ElseIfOption1(1).Value=TrueThen
How=REBOOT'选择了重新启动
ElseIfOption1(2).Value=TrueThen
How=SHUTDOWN'选择了关闭计算机
Else
How=CLOSEPROGRAMES'选择了关闭所有程序
EndIf
CallExitWindowsEx(How,0)'执行操作
EndSub

----按下F5,运行本程序,选择某个功能,然后按下确认按钮,嘿!不错吧。本程序用VisualBasic5.0编写,在Pwin95和Pwin97环境下运行正常。->