在特定时间段内禁止掉特定的程序(仅Windows)

1 篇文章 0 订阅
1 篇文章 0 订阅

之前舍友老王老打游戏老影响我学习,于是给他电脑植入了一vbs脚本,效果蛮不错的,就是事后容易被打。今天有个家长想要这东西,那我就在这贴出来吧。

制作禁止程序的脚本

新建一个 .vbs文件,可以起名为limitProgram.vbs。然后复制下面的代码粘贴进去。

只需修改标有注释的代码就行,其他的直接照着复制即可。

Dim startTime,endTime,sleepTime,systemTime,limitPrograms

limitPrograms = array("DNF.exe", "lol.launcher_tencent.exe") '限制什么程序,就加入什么程序的进程名

'第一个定时,上午
startTime1="07:00:00" '什么时间开始限制这些程序
endTime1="11:00:00" '什么时间结束限制这些程序

'第二个定时,下午
startTime2="14:00:00" '什么时间开始限制这些程序
endTime2="17:00:00" '什么时间结束限制这些程序

'第三个定时,晚上
startTime3="19:00:00" '什么时间开始限制这些程序
endTime3="22:00:00" '什么时间结束限制这些程序

sleepTime = 1000*60*1 '每隔多长时间检测一次,睡眠时间单位是ms(毫秒),这里是一分钟。如果设置十分钟:1000*60*10


do while(true)
systemTime=Hour(Now)&":"&Minute(Now)&":"&Second(Now)
If trueTime Then
set wim= getobject("winmgmts:\\./root/cimv2")
For Each program In limitPrograms
limitProgram wim,program
next
End If
wscript.sleep sleepTime
Loop
WScript.quit

Function trueTime()
trueTime = compareTime(systemTime,startTime1) And compareTime(endTime1,systemTime) or compareTime(systemTime,startTime2) And compareTime(endTime2,systemTime) or compareTime(systemTime,startTime3) And compareTime(endTime3,systemTime)
End Function

Function compareTime(first,second)
compareTime = compareTimeByPosition(first,second,0)
End Function

Function compareTimeByPosition(first,second,posi)
Dim firstTime,secondTime
firstTime =Split(first,":")
secondTime =Split(second,":")
Select Case True
Case firstTime(posi)/1>secondTime(posi)/1
compareTimeByPosition = True
Case firstTime(posi)/1=secondTime(posi)/1
compareTimeByPosition= compareTimeByPosition(first,second,posi+1)
Case firstTime(posi)/1<secondTime(posi)/1
compareTimeByPosition = False
Case Else
compareTimeByPosition = False
End Select
End Function

Sub limitProgram(cusWim,name)
set limitResult = cusWim.execquery("select * from Win32_Process where name='" & name & "'")
killProgram(limitResult)
End Sub

Function killProgram(cusResult)
If cusResult.count > 0 Then
For Each pro In cusResult
pro.Terminate()
next
End If
End Function

然后把这个文件复制到电脑的启动项文件夹(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp)里,并双击执行。

至此,就全部完成了,以后此电脑用户在特定的时间内是绝对打不开这些相关软件和游戏的,除非重装电脑。

如果想解除此脚本程序,可看下面的进阶操作。


下面是进阶操作,可学习,可忽视。

制作植入脚本

加入启动项并立刻执行limitProgrames.vbs:

::更改当前目录为批处理本身的目录
cd /d %~dp0  
::获取管理员运行权限
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit

::将脚本复制到启动项文件夹中
copy "%cd%\limitProgrames.vbs" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\limitProgrames.vbs"

start limitProgrames.vbs

将上述代码存入文件startup.bat中即可。

当然也有其他植入方法:
win+R输入:regedit,进入注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
右键新建一个字符串值,名称随便,数据值指向这个文件的路径. eg: 名称:limitProgram,数据:D:\program files\moline\limitProgram.vbs

使用方法

将上面两个文件存入同一个文件夹中并拷入U盘内,然后就是物理植入了,找到目标PC,趁没人插入U盘,打开U盘双击文件startup.bat,然后拔出U盘开溜即可。


解除方法

删除并关闭启动项中的脚本:

cd /d %~dp0
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit

del /a /f /q "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\limitProgrames.vbs"

taskkill /im wscript.exe /f

将上述代码存入shutdown.bat,双击即可。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值