用VB編寫定時關閉計算機的程序

發表于:2007-07-14來源:作者:點擊數: 標簽:
微軟的 VB 以簡單易用,功能強大而著稱,使用VB可以很容易地編寫出定時關閉計算機的程序。以下是一個簡單的定時關閉計算機的程序,供各位使用VB的朋友參考,如有何不適之處,請多指點! ---- 定時關閉計算機,很顯然,有兩個關鍵點: ---- 1.定時??梢杂肰B中的T
  微軟的VB以簡單易用,功能強大而著稱,使用VB可以很容易地編寫出定時關閉計算機的程序。以下是一個簡單的定時關閉計算機的程序,供各位使用VB的朋友參考,如有何不適之處,請多指點!

---- 定時關閉計算機,很顯然,有兩個關鍵點:

---- 1.定時??梢杂肰B中的Timer控件結合計算機的系統時間來進行精確的定時。

---- 2.關閉計算機。這可以調用Win32 API函數 ExitWindowsEx 來關閉計算機。

----

---- 下面首先來說明一下 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_SHUTDOWN=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

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97