任何人都可以帮我在VBScript中关闭这个程序吗?

时间:2016-03-20 22:00:07

标签: vbscript

MsgBox ("Do you want to start the autoclicker?", vbOkOnly, "Autoclicker")
CreateObject("WScript.Shell").Run("""C:\Users\Henry\Desktop\Fun.vbs""")
MsgBox ("Do you want to stop the autoclicker?", vbOkOnly, "Autoclicker")

3 个答案:

答案 0 :(得分:0)

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")

For Each objItem in colItems
    'msgbox objItem.ProcessID & " " & objItem.CommandLine
    If objItem.name = "Calculator.exe" then objItem.terminate
Next

这会杀死calculator.exe。将其更改为wscript.exe。如果你只想杀死fun.vbs,你可能想检查命令行。

答案 1 :(得分:0)

以下例程会终止其命令行包含指定字符串的所有进程。例程下面的3行用于测试它。我们通过显示一个消息框来暂停例程,当您关闭消息框时,我们会终止脚本实例,因此第二个消息框不会显示。当您使用它时,您想用

替换最后3行
KillProcesses "Fun.vbs"

我要小心使用它并指定尽可能多的命令行,以确保我绝对,积极地匹配我想要终止的进程。您可以修改任务管理器并添加一列以显示每个正在运行的进程的命令行。在下面的例程中,命令行中的搜索不区分大小写。

Option Explicit

Sub KillProcesses(strPartOfCommandLine)
    Dim colProcesses
    Dim objProcess
    Dim lReturn


    ' Get list of running processes using WMI
    Set colProcesses = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * From Win32_Process")

    For Each objProcess in colProcesses
        If (Instr(1, objProcess.Commandline, strPartOfCommandLine, vbTextCompare) <> 0) Then
            lReturn = objProcess.Terminate(0)
        End If
    Next
End Sub

Msgbox "Before being killed"
KillProcesses "KillProcesses.vbs"
Msgbox "After being killed"

答案 2 :(得分:0)

我在一个脚本之前做了一个问你想要杀死什么vbscript并将结果记录到文件中的脚本。

所以,试一试:

Option Explicit
Dim Titre,Copyright,fso,ws,NomFichierLog,temp,PathNomFichierLog,OutPut,Count,strComputer
Copyright = "[© Hackoo © 2014 ]"
Titre = " Process "& DblQuote("Wscript.exe") &" running "
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject( "Wscript.Shell" )
NomFichierLog="Process_WScript.txt"
temp = ws.ExpandEnvironmentStrings("%temp%")
PathNomFichierLog = temp & "\" & NomFichierLog
Set OutPut = fso.CreateTextFile(temp & "\" & NomFichierLog,1)
Count = 0 
strComputer = "."
Call Find("wscript.exe")
Call Explorer(PathNomFichierLog)
'***************************************************************************************************
Function Explorer(File)
    Dim ws
    Set ws = CreateObject("wscript.shell")
    ws.run "Explorer "& File & "\",1,True
end Function
'***************************************************************************************************
Sub Find(MyProcess)
    Dim colItems,objItem,Processus,Question
    Set colItems = GetObject("winmgmts:").ExecQuery("Select * from Win32_Process " _
    & "Where Name like '%"& MyProcess &"%' AND NOT commandline like '%" & wsh.scriptname & "%'",,48)
    For Each objItem in colItems
        Count= Count + 1
        Processus = Mid(objItem.CommandLine,InStr(objItem.CommandLine,""" """) + 2) 'Extraction of the commandline script path
        Processus = Replace(Processus,chr(34),"")
        Question = MsgBox ("Did you want to stop this script : "& DblQuote(Processus) &" ?" ,VBYesNO+VbQuestion,Titre+Copyright)
        If Question = VbYes then
            objItem.Terminate(0)'Kill this process
            OutPut.WriteLine DblQuote(Processus)
        else
            Count= Count - 1 'decrement the counter -1
        End if
    Next
OutPut.WriteLine String(100,"*")
OutPut.WriteLine count & Titre & " were stopped !"
End Sub
'**********************************************************************************************
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'**********************************************************************************************