Board logo

标题: 规定时间后弹出提示 [打印本页]

作者: junyee     时间: 2006-12-25 11:32    标题: 规定时间后弹出提示

我想写个东东,以实现如下效果
运行后/
要求输入一个时间(a,单位:小时),
输入后,弹出窗口“你所设定的上机时间为a小时!“
3秒后该弹出窗口自己隐藏!
每15分钟弹出一个提示:保护眼睛哦!15秒后提示框消失~
然后在刚才输入的时间(a)快要到达(如输入的是1,则在59分钟)的时候,提示"你所限定的时间已到!请做好下机准备!"(最好,能在此同时显示倒计时!60-59-58...1-0)
倒计时为0(也就是所输入的时间a到达)的时候,运行某个程序!


用vbs应该能实现吧?可我不懂,连bat 也只是略懂一二~,如果能用bat写的话,就更好了^_^~~   
我在本论坛里也发过帖求助,可是得到的回答不甚多哉~唉。

最好,不要通过第三方软件~~我在网上搜了好多回了,都很少有能真正满意的。我想实现的,是让谁都会用!
做这个东西的目的呢,很明显,是能对某些电脑频繁使用者做出提醒!关注自身健康!
本人就是因为不注意用眼的相关问题,长时间面对显示器,导致了现在的高度近视!
可悔之无及矣!只能盼望某位高人,能写出这样一个东西.
把这个东西放在网吧里,使(或督促)每位上机用户都能养成良好的用眼习惯!
祝每位电脑爱好者,在享受电脑带给我们欢乐的同时,能一直拥有一双明亮的眼睛!

圣诞快乐~~~~~~

乞盼!
作者: lotus516     时间: 2006-12-25 13:51
作了个批,代码有点乱!!但还行!!!我时间不多没测到一小时!!!你自己测试一下!!!!
第一次沙发!!呵呵!!!
@echo off
set /p a=你所设定的上机时间为a小时:
set /a b=%a%
set /a d=%a%*4
set /a d=%d%-1
msg %username% /time:3  "你所设定的上机时间为%a%小时!"
set /a c=1
set /a e=15
setlocal enabledelayedexpansion
:1
sleep 900000
msg %username% /time:15  ":)........保护眼睛哦........:)!"
if !e! equ 14 goto 3
if !c! equ !d! set /a e=14
set /a c+=1&&goto 1
:3
sleep 840000
set f=60
:4
msg %username% /time:1  ":)还有!f!秒时间到!请作好备份!!!:)"
set /a f-=1
if !f! GEQ 1 goto 4
sleep 60000
exit
sleep这个软件时间准(毫秒级别)!!内存占用不多!!!(388k)
一个小缺点一定要是整数小时!!!
sleep一定要和批放在一个文件夹中,否则代码中的sleep要改为具体路径!!如d:\sleep.exe
更正了几个严重错误!!
楼主需要的话,把exit改为你要运行的程序就可以了!!!

[ Last edited by lotus516 on 2006-12-25 at 03:47 PM ]
作者: win2ye     时间: 2006-12-25 22:15
学习中

还是要外部命令

不过想让BAT利用内部命令达到效果,难!
作者: jmz573515     时间: 2006-12-25 22:39
我想是不是可以调用一下shutdown这个命令.
作者: vlanmaster     时间: 2006-12-25 23:27
不过shutdown好象必须有administrator权限.不然没法执行.
作者: voiL     时间: 2006-12-25 23:47
不是管理员的话可能有点难度...

还有,楼主的运行环境是??????........
作者: everest79     时间: 2006-12-25 23:54
计时可以用特殊一点的方法来做到吗

灵活使用ping -w [ms] -n 1 不存在的IP
例如ping -n 1 -w 1000 1.255
作者: lcazhj     时间: 2006-12-26 00:21
不会 期待
作者: lotus516     时间: 2006-12-26 07:17


  Quote:
Originally posted by everest79 at 2006-12-25 23:54:
计时可以用特殊一点的方法来做到吗

灵活使用ping -w [ms] -n 1 不存在的IP
例如ping -n 1 -w 1000 1.255

不是不可以,是精度不高,楼主要求高,ping不行!!
批处理延时还有什么精巧点的技巧吗?http://www.cn-dos.net/forum/view ... 7%E5%90%97%EF%BC%9F
作者: junyee     时间: 2006-12-26 08:13
运行失败!

提示:获取会话名称时的错误 1702

这是我运行时出现的问题。。。
windows xp sp2

还有,能不能写个vbs以实现如上功能。
lotus516兄的代码没能测试成功,不知道运行后任务栏会不会有命令提示符的窗口??
我想最好写出的代码运行后不会在任务栏出现任何东西的~~vbs应该能达到吧?
作者: lotus516     时间: 2006-12-26 09:28


  Quote:
Originally posted by junyee at 2006-12-26 08:13:
运行失败!

提示:获取会话名称时的错误 1702

这是我运行时出现的问题。。。
windows xp sp2

还有,能不能写个vbs以实现如上功能。
lotus516兄的 ...

我还不是SP2就可以啊!!任务栏有窗口,不要窗口VBS可以作到,但我就弄不出来窗口了!!还有可以把它弄成服务就没窗口了!

[ Last edited by lotus516 on 2006-12-26 at 09:35 AM ]
作者: junyee     时间: 2006-12-26 10:34
,先谢下了。。。
坛里有好多VBS高手的~~~来帮一下啊?
作者: jmz573515     时间: 2006-12-26 12:03
'大致写了一个,没有经过测试。仅供参考。(时间不能达到你说的那么准确,有些功能无法实现)
set ws=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
a=inputbox("请设定你的上机时间。(单位:小时)","提示")
ws.popup "你设定的时间为" & a& "小时",3,"提示"
starttime=timer
do
endtime=timer
sysj=endtime-starttime
if sysj>=3600*a-60 then
ws.popup"你所限定的时间已到!请做好下机准备!",60,"提示"
ws.run "cmd" '这是你要运行的程序
wscript.quit
end if
if sysj <3600*a-960 then
wscript.sleep 1000*15*60
ws.Popup"保护眼睛啊!", 15, "系统提示"
else
wscript.sleep 1000
end if
loop
[ Last edited by jmz573515 on 2006-12-26 at 09:49 AM ]
作者: slore     时间: 2007-2-12 14:36
用at命令

c:\>at /?
AT 命令安排在特定日期和时间运行命令和程序。
要使用 AT 命令,计划服务必须已在运行中。
作者: anqing     时间: 2007-2-12 22:13
13楼的vbs,在第16分弹出提示,测试可以
但最后的时间到的提示没有实现?
作者: anqing     时间: 2007-2-12 22:54
关于13楼的vbs
我设定为1小时,当时的时间是10:16,可是到了11:25分,还没有出现“ws.popup"你所限定的时间已到!请做好下机准备!",60,"提示"

请改进代码?
作者: anqing     时间: 2007-2-12 23:00
终于出来了,不过是在11:30分出现的,就是说,我设定1小时,设定时间是10:16,它在11:30出现提示,延迟了14分钟
我是在10:16分后,把时间改成11:14的,然后就等了,没想到等了14分钟,才出来
不知是什么原因?

timer
关于这个函数,能不能说明 一下作用?
作者: slore     时间: 2007-2-13 02:30
wscript.sleep 1000*15*60
等待15分钟

timer返回现在的时间.
作者: pxcok     时间: 2007-2-20 06:46
帮你顶一下