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

Posted

技术标签:

【中文标题】如何停止在 Windows 中运行的 vb 脚本【英文标题】:How to stop a vb script running in windows 【发布时间】:2011-12-22 12:04:03 【问题描述】:

我使用的是 Windows 7

我编写了一个脚本来检查我的笔记本电脑是在电池还是交流电中运行。 我用谷歌搜索并成功了。

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 中停止?

【问题讨论】:

【参考方案1】:

我至少能想到两种不同的方法:

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

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

另一种方法是使用脚本和 WMI。这里有一些提示:寻找 Win32_Process 类和 Terminate 方法。

【讨论】:

【参考方案2】:

在您的代码中,就在“do while”语句之后,添加这一行..

`Wscript.sleep 10000`

这将使您的脚本休眠 10 秒并让您的系统休息。否则,您的处理器将每秒运行此脚本数百万次,这肯定会加载您的处理器。

要杀死它,只需转到任务管理器并杀死 wscript.exe 或者如果找不到它,你会找到 cscript.exe,按删除按钮将其杀死。这些将出现在您的任务管理器的进程选项卡中。

一旦你在代码中添加了那行,我认为你不需要终止这个进程。它不会加载你的 CPU。

祝你有美好的一天。

【讨论】:

【参考方案3】:

可以从任务管理器中终止正在运行的脚本。

但是,使用 .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  

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

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

【讨论】:

【参考方案4】:

启动任务管理器,单击进程选项卡,右键单击 wscript.exe 并选择结束进程,并在随后的对话框中确认。这将终止正在执行您的脚本的 wscript.exe。

【讨论】:

能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述?【参考方案5】:

创建一个包含以下行的 Name.bat 文件。

taskkill /F /IM wscript.exe /T

确保不要过度使用您的处理器。 如果您正在运行长脚本,您的处理器速度会发生变化,并且脚本行将相互覆盖。

【讨论】:

以上是关于如何停止在 Windows 中运行的 vb 脚本的主要内容,如果未能解决你的问题,请参考以下文章

从 Windows 服务运行 VB 脚本

如何以编程方式停止 Windows 服务?

在终端窗口中停止 logcat 的脚本

无法在 Windows 7 x64 上使用 VB 脚本中的 CreateObject

如何使用 Windows 计划任务运行 PHP 脚本?

VB 代码不会在断点处停止