用VB編寫定時關閉計算機的程序
發表于:2007-07-14來源:作者:點擊數:
標簽:
微軟的 VB 以簡單易用,功能強大而著稱,使用VB可以很容易地編寫出定時關閉計算機的程序。以下是一個簡單的定時關閉計算機的程序,供各位使用VB的朋友參考,如有何不適之處,請多指點! ---- 定時關閉計算機,很顯然,有兩個關鍵點: ---- 1.定時??梢杂肰B中的T
微軟的
VB以簡單易用,功能強大而著稱,使用VB可以很容易地編寫出定時關閉計算機的程序。以下是一個簡單的定時關閉計算機的程序,供各位使用VB的朋友參考,如有何不適之處,請多指點!
---- 定時關閉計算機,很顯然,有兩個關鍵點:
---- 1.定時??梢杂肰B中的Timer控件結合計算機的系統時間來進行精確的定時。
---- 2.關閉計算機。這可以調用Win32 API函數 Exit
WindowsEx 來關閉計算機。
----
---- 下面首先來說明一下 ExitWindowsEx 函數,該函數在VB中的聲明如下:
Declare Function ExitWindowsEx Lib
"user32" Alias "ExitWindowsEx" _
(ByVal uFlags As Long, ByVal
dwReserved As Long) As Long
【返回值】
Long,非零表示成功,零表示失敗。
【參數表】
uFlags --------- Long,
指定下述一個或多個標志(用OR運算符合并到
一起)
EWX_FORCE=4
強迫中止沒有響應的進程
EWX_LOGOFF=0
中止進程,然后注銷
EWX_SHU
TDOWN=1
關掉系統電源(如果可能的話,ATX電源就可以)
EWX_REBOOT=2 重新引導系統
dwReserved ----- Long,保留,設為零
好了,現在可以開始編程了。
---- 1. 新建一個標準EXE工程。
---- 2. 在窗體上放置一個TextBox控件,用以輸入定時時間。
---- 3. 在TextBox控件之下放置兩個OptionButton控件,組成控件數組,用以選擇定時模式。
---- 4. 在OptionButton控件之下放置一個CommandButton.
---- 5. 隨便在窗體的某地方放置一Timer控件。
---- 以上控件了需要設置的屬性值如下:
對象 屬性 設置
Text1 Text 空
Option1(0) Caption 在指定時間關機
(時間格式:00:00:00)
Index 0
Option1(1) Caption 延遲指定的時間關機
Index 0
Command1 Caption 確定
Timer1 Interval 15000(精確到1/4分鐘,
如要更精確可減少該值)
Enabled False
增加代碼如下:
標準模塊:
Option Explicit
Public Const EWX_SHUTDOWN = 1 '關閉系統
Declare Function ExitWindowsEx Lib
"user32" (ByVal uFlags As Long, ByVal
dwReserved As Long) As Long
窗體模塊:
Option Explicit
Dim txtTime '保存輸入時間
Dim nowTime '保存實時時間
Dim oldTime '保存開始定時時間
Private Sub Command1_Click()
oldTime = Time
If Not IsDate(Text1.Text) Then
'用IsData函數判斷輸入的時間格式
MsgBox "你所輸入的不是時間格式,請重試!", , "Wrong"
Else
txtTime = TimeValue(Text1.Text)
End If
Timer1.Enabled = True
'啟動定時器
Me.WindowState = 1
'最小化窗體
End Sub
Private Sub Timer1_Timer()
nowTime = Time
If Option1(0).Value Then
If DateDiff("s", nowTime, txtTime) < 0
Then '用DateDiff函數判斷是否到時間了
If Not ExitWindowsEx(EWX_SHUTDOWN, 0)
Then MsgBox ("無法關閉計算機")
End If
End If
Else
If DateDiff("s", nowTime, oldTime + txtTime) < 0
Then If Not ExitWindowsEx(EWX_SHUTDOWN, 0)
Then MsgBox ("無法關閉計算機")
End If
End If
End If
End Sub
---- 結束語:以上程序在VB5.0/6.0和Win98上調試通過。其實,此程序還可增加一些花樣,譬如,最后窗體不是最小化,而是調用Win32 API函數,把她的圖標放在系統任務欄里,即在右下角有聲音,時間等圖標的地方,那是另外一個主題了。
原文轉自:http://www.anti-gravitydesign.com