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

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

目录

  • 制作禁止程序的脚本(主体):vbs脚本
  • 制作植入脚本
  • 使用方法
  • 解除方法

制作禁止程序的脚本(主体):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 '每隔多长时间检测一次,睡眠时间单位是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

将上述代码粘入一个新建的 .vbs的文件中,可以起名为limitProgram.vbs

制作植入脚本

加入启动项并立刻执行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,双击即可。

你可能感兴趣的:(vbs脚本,娱乐,游戏)