微软的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函数,把她的图标放在系统任务栏里,即在右下角有声音,时间等图标的地方,那是另外一个主题了。
-
vb教程之用VB编写定时关闭计算机的程序
本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比