中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助] CMD环境纯批处理防沉迷系统
« [1] [2] »
作者:
标题: [求助] CMD环境纯批处理防沉迷系统 上一主题 | 下一主题
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『楼 主』:  [求助] CMD环境纯批处理防沉迷系统

说明:
现在玩游戏都是在XP环境下,所以说是CMD环境;
纯批处理就是尽量不需要第三方软件支持,但如果真的没办法,那只好也要用了;
防沉迷系统就是多时段控制电脑的使用,不管是程序、游戏、网址等等控制。

起因:
现在电脑很普及,很多青少年(还在校读书的那种)总是玩游戏不分昼夜的影响学习,不但影响学习,还会影响身体。我自己不是编程的料,所以。。。

参考:电脑报2006合订本242页:计算机防沉迷绝招-巧用“计划任务”管理开机时间觉得还不太理想:1、批处理数量多;2、计划任务容易被发现;3、还有些功能不足。

求助要求:
1、生成单一批处理文件(可以多参数形式运行),使其隐藏运行或以服务方式运行。
2、监视系统时间被恶意更改(可能要使用记录文件进行时间对比)
3、当没有连接网络时,按照系统时间处理,当连接网络时支持同步网络某服务器时间:
    系统要有Windows Time(W32Time)服务,设为自动
    net time /setsntp:time.jmu.edu.cn          ;设置时间服务器地址
    net stop w32time          ;停止时间服务
    net start w32time          ;开始时间服务
    w32tm -s          ;立即同步时间
4、支持多时段设置,例如:允许9:30-11:30、15:00-17:00、19:00-21:00使用电脑,其余时间一律自动关机;
5、支持设置禁止运行某些程序(包括游戏)、网址等等

因功能太多,个人可能认为不能全部胜任的,可以单一功能回贴,非常感谢!

2008-4-7 11:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
knightak
初级用户




积分 35
发帖 17
注册 2008-4-3
状态 离线
『第 2 楼』:  

纯命令行批处理应该是无法实现你说的全部功能的,除非介入外界工具
这么多要求你还是找软件公司给你做吧,论坛是答疑解惑的,不是帮人做项目的。
....................BTW:万一人家的东西被你拿去卖就有的看了。

2008-4-7 15:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
knightak
初级用户




积分 35
发帖 17
注册 2008-4-3
状态 离线
『第 3 楼』:  

想办法从教育上着手,对孩子是最好的。
你这种应该是暴力干涉。
教育还是教育呵呵。

2008-4-7 15:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 4 楼』:  

真的,LZ,我真的很想拿支手枪把美国那几艘航母干掉。



2008-4-7 16:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『第 5 楼』:  

这个我以前就写过.不过因为硬盘坏了所以也就费掉了.现在我没时间也没那份精力去写了,希望坛子里的兄弟来完善完善吧.

楼主所说的大部分功能我都有写的,可以搜索一下我以前发过的帖子,合起来应该就差不多了.

至于密码方面,可以用MD5.exe加密,再用est大哥所发的那个vbs写的setx.vbs来写到系统或用户变量里.也可用系统时间来生成密码来产生一个根据时间变化而变化的密码.

至于时间方面(CMD对8,9类数字无效),可以参考jastyg兄所发的计划任务小程序
http://www.cn-dos.net/forum/viewthread.php?tid=21110

时间校对方面可参考这里
http://www.cn-dos.net/forum/viewthread.php?tid=17659

setx.vbs
http://www.cn-dos.net/forum/viewthread.php?tid=27952

2008-4-7 19:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 6 楼』:  

5楼的回复才像些样子,参考一下,想来是没有帮的了,唯有自己试试做!

2008-4-7 21:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lotus516
高级用户

论坛上抢劫的


积分 551
发帖 246
注册 2006-9-21
状态 离线
『第 7 楼』:  

LZ的要求很容易实现!
1、用VBS即可以隐藏了
2、使用组策略,禁止更改时间
3、有了2,就不用上网对是时间了
4、shutdown -f -s -t 0这句就可以关机了,这句给个参考:
if "%a%%b%" gtr "930" if "%a%%b%" lss "1000" (
for /f "delims=" %%i in ('"cscript //nologo E:\自编程序区\共用2.vbs 现在属于关机时间,请在两分钟之内作出是否关机的决定,否则将于两分钟后自动关机"') do if /i %%i==no (echo.>no.bat) else shutdown -f -s -t 0)
930,1000是指9:30--10:00,句中的VBS在本坛坛上搜索,名字不叫共用2就是,当然这个是选择的,你可以改为强制的,不能选的,到时间必须关机!
5、程序可以禁止使用,但某个网址就不好办了!!

2008-4-8 00:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 8 楼』:  

都比较好实现,感觉体力活,放弃~

给你思路:
5.禁止程序用镜像劫持
  禁止网址用HOSTS

2008-4-8 03:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 9 楼』:  

谢谢7楼,本人对VBS不熟悉,还是自己学编批处理,不懂再问。以前编了个更改系统文件转移程序也是这样得来的。
因记性不太好,虽知道很多命令的用途,但应用时还要查一下帮助或参考别人的例子。

2008-4-8 11:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lotus516
高级用户

论坛上抢劫的


积分 551
发帖 246
注册 2006-9-21
状态 离线
『第 10 楼』:  

不是叫你用VBS编程,只是让你用VBS起动批处理,就可以隐藏了!!
CreateObject("WScript.Shell").Run "cmd /c E:\自编程序区\Q宠.bat",0
其实你的要求,1、4我都有,只不过想你自己写,对你自己也是好处,3你写出来了,我就不多说了,我也用不上这个!2其实除了在组策略中好弄外,其余都不怎么好,因为只要使用者知道你有这么个程序,可以在BIOS中改时间!!

[ Last edited by lotus516 on 2008-4-8 at 01:34 PM ]

2008-4-8 13:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lotus516
高级用户

论坛上抢劫的


积分 551
发帖 246
注册 2006-9-21
状态 离线
『第 11 楼』:  

VBS见这篇http://www.cn-dos.net/forum/view ... =%E8%BF%94%E5%9B%9E
强制选择把这句的NO去掉!
intAnswer = MsgBox("没本设置只能在安全模式下进行,要继续吗? ", vbExclamation + vbYesNo, "小不点提示!")

2008-4-8 13:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 12 楼』:  

没办法,只有一步一步来,先来处理时间登记及时间加密:
以下批处理生成一个 datetime.log 的文本文件(看引用部分),这一串字符串是这样排列的:
运行时间,随机密码,一段时间起,一段时间终,二段时间起,二段时间终,三段时间起,三段时间终
上面各段时间,全部都加上随机密码后写入 datetime.log 文件的。
@echo off
set hour=%time:~0,2%
set minute=%time:~3,2%
set second=%time:~6,2%
set t6=%hour%%minute%%second%

set /a p5=%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%
set /a t6p5=%t6%+%p5%
>datetime.log set /p=%t6p5%<nul
>>datetime.log set /p=%p5%<nul

set _one=100000
set one_=113000
set _two=140000
set two_=170000
set _three=200000
set three_=220000

set /a p5_one=%_one%+%p5%
set /a p5one_=%one_%+%p5%
set /a p5_two=%_two%+%p5%
set /a p5two_=%two_%+%p5%
set /a p5_three=%_three%+%p5%
set /a p5three_=%three_%+%p5%
>>datetime.log set /p=%p5_one%<nul
>>datetime.log set /p=%p5one_%<nul
>>datetime.log set /p=%p5_two%<nul
>>datetime.log set /p=%p5two_%<nul
>>datetime.log set /p=%p5_three%<nul
>>datetime.log set /p=%p5three_%<nul

for /f %%a in (datetime.log) do set string=%%a
echo 加密文本:%string%
set /a password=%string:~6,5%
echo 密码文本:%password%
set /a runtime=%string:~0,6%-%string:~6,5%
echo 执行时间:%runtime:~0,2%:%runtime:~2,2%:%runtime:~4,2%
set /a one1=%string:~11,6%-%string:~6,5%
set /a one2=%string:~17,6%-%string:~6,5%
echo 第一阶段:%one1:~0,2%:%one1:~2,2%:%one1:~4,2%-%one2:~0,2%:%one2:~2,2%:%one2:~4,2%
set /a two1=%string:~23,6%-%string:~6,5%
set /a two2=%string:~29,6%-%string:~6,5%
echo 第二阶段:%two1:~0,2%:%two1:~2,2%:%two1:~4,2%-%two2:~0,2%:%two2:~2,2%:%two2:~4,2%
set /a three1=%string:~35,6%-%string:~6,5%
set /a three2=%string:~41,6%-%string:~6,5%
echo 第三阶段:%three1:~0,2%:%three1:~2,2%:%three1:~4,2%-%three2:~0,2%:%three2:~2,2%:%three2:~4,2%

:: ping -n 60 127.1>nul
pause
以下是批处理的执行结果,每机子的执行结果与下列数据是绝对不同的。

  Quote:
加密文本:22154011121111121124121151121181121211121231121
密码文本:11121
执行时间:21:04:19
第一阶段:10:00:00-11:30:00
第二阶段:14:00:00-17:00:00
第三阶段:20:00:00-22:00:00
请按任意键继续. . .

问题来了:
因为记录的时间段都是6位,如果是处理10点前的时间,原因是这个6位数前面是0的关系如何对加减运算处理好?况且这些时间还要以6位数的形式写入到 datetime.log 文件内的。

请教各位如何改进好呢?

[ Last edited by chishingchan on 2008-4-8 at 10:42 PM ]

2008-4-8 22:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 13 楼』:  

这个问题我有想过用时间加一个1000000的数,哪管这个时间是00:00:00也好,但这个00:00:00就需要特别处理为=1000000,或者每个时间都再加上1秒,10时前的再加上1000000,处理时再减出1000000,不知这样好不好?

2008-4-8 22:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 14 楼』:  多谢 lotus516 的回复!

隐藏处理我是有方法的,如果用服务方式,本坛有,我没学习。但这个最后处理也不迟的。
核心的是要设定、检测、处理等等时间问题。

2008-4-8 22:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 15 楼』:  

大家给点意见也好啊,帮助一下嘛!

2008-4-9 14:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: