----在用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環境下運行正常。->