9

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

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

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

4

5 に答える 5

15

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

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

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

もう 1 つの方法は、スクリプトと WMI を使用することです。Win32_Process クラスと Terminate メソッドを探してください。

于 2011-11-05T03:14:07.770 に答える
5

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

ただし、.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  

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

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

于 2014-12-13T19:26:26.957 に答える
3

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

taskkill /F /IM wscript.exe /T

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

于 2017-10-16T03:52:44.883 に答える
2

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

`Wscript.sleep 10000`

これにより、スクリプトが 10 秒間スリープ状態になり、システムが休息します。そうしないと、プロセッサがこのスクリプトを 1 秒間に何百万回も実行することになり、プロセッサに確実に負荷がかかります。

これを強制終了するには、タスクマネージャーに移動して wscript.exe を強制終了するか、見つからない場合は cscript.exe を見つけて削除ボタンを押して強制終了します。これらは、タスク マネージャーの [プロセス] タブに表示されます。

その行をコードに追加したら、このプロセスを強制終了する必要はないと思います。CPU に負荷がかかりません。

すてきな一日を。

于 2013-03-26T03:32:23.970 に答える
1

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

于 2015-06-19T12:21:48.007 に答える