web-dev-qa-db-ja.com

Windowsで実行されているVBスクリプトを停止する方法

Windows 7を使用しています

ノートパソコンがバッテリーで動作しているか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

しかし、私の問題は今です。このスクリプトは、手動で終了する場合に停止するスクリプトを実行しています。

このプロセスを見つけてウィンドウで停止する方法はありますか?

8
shanmugamgsn

私は少なくとも2つの異なる方法を考えることができます:

  1. タスクマネージャー(Ctrl-Shift-Esc)を使用してプロセスタブを選択し、プロセス名cscript.exeまたはwscript.exeを探して、プロセスの終了を使用します。

  2. コマンドラインからtaskkill/fi "imagename eq cscript.exe"を使用できます(必要に応じてwscript.exeに変更します)

別の方法は、スクリプトとWMIを使用することです。ここにいくつかのヒントがあります:Win32_ProcessクラスとTerminateメソッドを探します。

13
Robin Caron

実行中のスクリプトは、タスクマネージャから終了できます。

ただし、スクリプトが永続的にフォーカスするプログラムウィンドウで。AppActivateを使用している場合、タスクマネージャーにアクセスするのが非常に難しくなる可能性があります。したがって、私はスクリプト(私は明らかな理由で自己破壊と呼んでいます)を作成し、スクリプトをアクティブにするキーボードショートカットキーを作成することをお勧めします。

自己破壊スクリプト:

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  

キーボードショートカット:スクリプトアイコンを右クリックして、ショートカットの作成を選択し、スクリプトショートカットアイコンを右クリックして、プロパティを選択し、ショートカットキーをクリックして、独自のショートカットを作成します。

ショートカットキーを入力すると、すべてのスクリプトが終了します。乾杯

コードの「do while」ステートメントの直後に、この行を追加します。

`Wscript.sleep 10000`

これにより、スクリプトが10秒間スリープし、システムが休止します。そうでなければ、あなたのプロセッサはこのスクリプトを毎秒数百万回実行し、これは間違いなくあなたのプロセッサをロードします。

それを殺すには、タスクマネージャーに移動してwscript.exeを殺すか、それが見つからない場合はcscript.exeを見つけて、削除ボタンを押して殺してください。これらはタスクマネージャーのプロセスタブにあります。

コードにその行を追加したら、このプロセスを終了する必要はないと思います。 CPUはロードされません。

すてきな一日を。

2
Sultanahamer

タスクマネージャーを起動し、[プロセス]タブをクリックして、wscript.exeを右クリックし、[プロセスの終了]を選択して、次のダイアログで確認します。これにより、スクリプトを実行しているwscript.exeが終了します。

1
Debjit Mandal

次の行を含むName.batファイルを作成します。

taskkill /F /IM wscript.exe /T

プロセッサを圧倒しないでください。長いスクリプトを実行している場合、プロセッサの速度が変化し、スクリプトの行が互いに上書きされます。

1
Ho1m3s