vbs實(shí)現(xiàn)的eMule電驢自動(dòng)關(guān)機(jī)腳本代碼
2020-07-26 11:56:08
供稿:網(wǎng)友
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = WScript.CreateObject("WScript.Shell")
Count = 0
Do Until Count< -1
chksize = fso.GetFolder("C:/Program Files/eMule/Temp").Size
If chksize = 0 Then
WScript.Sleep 120000
'ws.run "shutdown -p", 0 '這句還是不太好使
ws.run "tsshutdn 60 /delay:0 /powerdown",0 '這個(gè)是在一個(gè)批處理關(guān)機(jī)程序里看到的,非常強(qiáng),試了很多次,各種情況下都能關(guān)機(jī)(2003系統(tǒng),其它系統(tǒng)未測(cè))
End If
WScript.Sleep 120000
Loop
將以上代碼保存為文本文件,將"C:/Program Files/eMule/Temp"改成你自己的emule臨時(shí)文件目錄,并將后綴改成vbs運(yùn)行即可。
此腳本的作用是每2分鐘檢測(cè)一次temp文件夾,若emule下載完成,則temp為空,腳本等待2分鐘后強(qiáng)行關(guān)閉本地計(jì)算機(jī),沒(méi)有超時(shí)或警告。
不過(guò)本人非常配服作者的見(jiàn)解,作者太有才了,能想出這種辦法來(lái)。
非常感謝對(duì)我的評(píng)價(jià),作者的生氣是可以理解的,我也不多做解釋了,因?yàn)槲也辉谀木W(wǎng)站上看到這內(nèi)容,且,我看了您的代碼,是可以正常工作的
現(xiàn)在說(shuō)下我的觀點(diǎn):
1。我在網(wǎng)上看到的內(nèi)容是提示是在do里邊的,所以這個(gè)方法是不行的。
2。shutdown 的參數(shù),我是不怎么了解,我用的系統(tǒng)是2003+sp2這個(gè)上的shutdown 是有-p屬性的,不過(guò)看了您的文章知道了,還有個(gè)-f屬性,我這個(gè)版本也有,所以您的代碼通用性比較強(qiáng)。
3。至于 ,腳本等待2秒后強(qiáng)行關(guān)閉本地計(jì)算機(jī),沒(méi)有超時(shí)或警告。這個(gè)是本人粗心所致(應(yīng)該是2分鐘120000=120*1000),此文會(huì)改正。
作者對(duì)他寫(xiě)的文章如此關(guān)注,實(shí)在令人敬佩,
另:您的網(wǎng)站沒(méi)法進(jìn)行留言,我試了很多都不行,您還是處理一下吧,或網(wǎng)站上加上一個(gè)聯(lián)系方式,這個(gè)以便和您聯(lián)系。
貼上作者原代碼:
通用信很強(qiáng)的
dir=”E:/Temp”
Set fso=CreateObject(”Scripting.FileSystemObject”)
cmd=”shutdown -s -f -t 60″
Set ws=WScript.CreateObject(”WScript.Shell”)
Wscript.Echo “emule自動(dòng)關(guān)機(jī)腳本已運(yùn)行……”
count=0
do until count<-1
chksize = fso.GetFolder(dir).Size
If chksize=0 Then
ws.run cmd,0
End If
WScript.Sleep 120000
loop因?yàn)楹枚嗳硕疾辉O(shè)置存放文件的路徑所以,給個(gè)比較直接的
Dir = "C:/Program Files/eMule/Temp"
Set fso = CreateObject("Scripting.FileSystemObject")
cmd = "shutdown -s -f -t 60"
Set ws = WScript.CreateObject("WScript.Shell")
Wscript.Echo "emule自動(dòng)關(guān)機(jī)腳本已運(yùn)行……"
Count = 0
Do Until Count< -1
chksize = fso.GetFolder(Dir).Size
If chksize = 0 Then
ws.run cmd, 0
End If
WScript.Sleep 120000
Loop本人修改的:
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = WScript.CreateObject("WScript.Shell")
Count = 0
Do Until Count< -1
chksize = fso.GetFolder("C:/Program Files/eMule/Temp").Size
If chksize = 0 Then
WScript.Sleep 120000
ws.run "tsshutdn 60 /delay:0 /powerdown", 0 '這個(gè)是在一個(gè)批處理關(guān)機(jī)程序里看到的,非常強(qiáng),試了很多次,各種情況下都能關(guān)機(jī)(2003系統(tǒng),其它系統(tǒng)未測(cè))
End If
WScript.Sleep 120000
Loop