2011-11-05 212 views
4

我正在使用的Windows 7如何停止在Windows中運行的VB腳本

我寫了一個腳本來檢查我的筆記本電腦是否在電池或AC電流運行。 我用它搜索並在那裏成功。

dim a 
a=1 
Do While a=1 
If IsLaptop(".") Then 
    ' WScript.Echo "Laptop" 
Else 
    ' WScript.Echo "Desktop or server" 
End If 
Loop 

Function IsLaptop(myComputer) 
    On Error Resume Next  
    Set objWMIService = GetObject("winmgmts://" & myComputer & "/root/cimv2") 
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Battery", , 48) 
    IsLaptop = False 
    For Each objItem in colItems 
     if objItem.BatteryStatus=2 and objItem.EstimatedChargeRemaining=98 then 
      WScript.Echo "Remove Ac Adapter Immediately" 
     elseif objItem.BatteryStatus=1 and objItem.EstimatedChargeRemaining=10 then 
      WScript.Echo "Pluggin to charger immediately" 
     end if 
    Next 
    If Err Then Err.Clear 
    On Error Goto 0 
End Function 

但我現在的問題是。如果我希望手動終止,此腳本永遠在運行腳本如何停止。

有沒有什麼方法可以去找到這個過程並停止在Windows?

回答

12

我能想到的至少兩種不同的方式:

  1. 使用任務管理器(Ctrl-Shift鍵Esc鍵),選中該進程選項卡中查找進程名稱的Cscript.exe或WScript.exe的和使用結束進程。

  2. 從(根據需要改變WSCRIPT.EXE),你可以使用的taskkill /網絡連接 「imagename EQ的Cscript.exe」 命令行

另一種方法是使用腳本和WMI。這裏有一些提示:查找Win32_Process類和Terminate方法。

2

在你的代碼,只是後「而做」語句,加入這一行..

`Wscript.sleep 10000` 

這將讓持續10秒腳本的睡眠,讓你的系統中休息。否則你的處理器將每秒鐘運行這個腳本數百萬次,這肯定會加載你的處理器。

殺死它,只是goto taskmanager並殺死wscript.exe,或者如果找不到,你會發現cscript.exe,殺死它,按下刪除按鈕。這些將出現在taskmanager的進程選項卡中。

一旦你在代碼中添加該行,我不認爲你需要殺死這個過程。它不會加載你的CPU。

祝您有美好的一天。

3

運行腳本可以從任務管理器終止。

然而,腳本永遠集中使用.AppActivate程序窗口可能使其變得非常困難的任務管理器-i.e你和腳本將爭取控制。因此,我建議編寫一個腳本(我稱之爲自毀),並製作一個鍵盤快捷鍵來激活腳本。

自毀腳本:

Option Explicit 
Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.Run "taskkill /f /im Cscript.exe", , True 
WshShell.Run "taskkill /f /im wscript.exe", , True 

鍵盤快捷鍵: 右擊上的腳本圖標,選擇創建快捷方式, 右擊在腳本的快捷方式圖標,選擇屬性,點擊快速鍵,讓你自己。

鍵入您的快捷鍵並結束所有腳本。歡呼聲

1

啓動任務管理器,單擊進程選項卡,右鍵單擊wscript。exe並選擇End Process,然後在隨後的對話框中進行確認。這將終止執行腳本的wscript.exe。

+0

您能否詳細說明您的答案,並添加關於您提供的解決方案的更多描述? – abarisone

0

創建一個Name.bat文件,其中包含以下行。

taskkill /F /IM wscript.exe /T 

請務必不要壓倒你的處理器。 如果您正在運行長腳本,則處理器速度會發生變化,腳本行將相互覆蓋。

相關問題