如何停止在Windows中运行的vb脚本

sha*_*gsn 7 vbscript scripting windows-scripting

我正在使用Windows 7

我写了一个脚本来检查我的笔记本电脑是以电池还是交流电流运行.我用Google搜索并在那里成功.

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
Run Code Online (Sandbox Code Playgroud)

但我现在的问题是.如果我希望手动终止,此脚本将运行脚本如何停止.

我有什么方法可以找到这个过程并在Windows中停止吗?

小智 13

我至少可以想到两种不同的方式:

  1. 使用任务管理器(Ctrl-Shift-Esc),选择进程选项卡,查找进程名称cscript.exe或wscript.exe并使用End Process.

  2. 从命令行,您可以使用taskkill/fi"imagename eq cscript.exe"(根据需要更改为wscript.exe)

另一种方法是使用脚本和WMI.以下是一些提示:查找Win32_Process类和Terminate方法.


小智 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  
Run Code Online (Sandbox Code Playgroud)

键盘快捷键:右键单击脚本图标,选择创建快捷方式,右键单击脚本快捷图标,选择属性,单击快捷键,然后创建自己的快捷键。

输入快捷键,所有脚本结束。干杯