2011-11-05 36 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 

请务必不要压倒你的处理器。 如果您正在运行长脚本,则处理器速度会发生变化,脚本行将相互覆盖。

相关问题