在特定時間段內禁止掉特定的程式(僅Windows)

2021-10-04 06:33:34 字數 4061 閱讀 5284

之前舍友老王老打遊戲老影響我學習,於是給他電腦植入了一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

dowhile

(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

endif

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)

endfunction

function comparetime(first,second)

comparetime = comparetimebyposition(first,second,0)

endfunction

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

comparetimebyposition =

false

case

else

comparetimebyposition =

false

endselect

endfunction

sub limitprogram(cuswim,

name

)set limitresult = cuswim.execquery(

"select * from win32_process where name='"

&name

&"'"

)killprogram(limitresult)

endsub

function killprogram(cusresult)

if cusresult.count >

0then

for each pro in cusresult

pro.terminate(

)next

endif

endfunction

然後把這個檔案複製到電腦的啟動項資料夾(c:\programdata\microsoft\windows\start menu\programs\startup)裡,並雙擊執行。

至此,就全部完成了,以後此電腦使用者在特定的時間內是絕對打不開這些相關軟體和遊戲的,除非重灌電腦。

如果想解除此指令碼程式,可看下面的高階操作。

下面是高階操作,可學習,可忽視。

加入啟動項並立刻執行limitprogrames.vbs:

::更改當前目錄為批處理本身的目錄

cd /d %~dp0

::獲取管理員執行許可權

%1 start

"" mshta vbscript:createobject(

).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(

).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,雙擊即可。

mysql查詢特定時間段內的資料

建表語句 set foreign key checks 0 table structure for t user drop table if exists t user create table t user userid bigint 20 not null,fullname varchar 64...

linux下查詢特定時間段內生成的檔案

如下,查詢9點到11點生成的檔案,不包括9和11,即查詢10點生成的檔案 方法1 ls l 20120816bak awk 方法2 先touch 2個時間段的時間標記touch t 08160900 starttime touch t 08161100 endtime然後 find 20120816...

7 計算時間段內特定範圍內的人員組合

要求 結果如圖 貨車表資料 select 1 as 順序,1001 as 車隊編號,張三 as 車主姓名,10 as 載貨量 from dual union all select 2 1001 李四 15 from dual union all select 3 1001 王五 10 from du...