VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > vb >
  • vb教程之用VB编写定时关闭计算机的程序

微软的VB以简单易用,功能强大而著称,使用VB可以很容易地编写出定时关闭计算机的程序。以下是一个简单的定时关闭计算机的程序,供各位使用VB的朋友参考,如有何不适之处,请多指点! 

---- 定时关闭计算机,很显然,有两个关键点: 

---- 1.定时。可以用VB中的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函数,把她的图标放在系统任务栏里,即在右下角有声音,时间等图标的地方,那是另外一个主题了。 

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

 

相关教程