Windows:如何打开EXE,让它运行,然后在关闭时触发另一个脚本。

时间:2015-09-15 18:27:57

标签: windows batch-file vbscript cmd exe

背景。 所以我的一个团队已经构建了一个桌面应用程序安装程序。它运行并将打开不同的进程,具体取决于它当时正在使用的功能。

问题所在。 当我们打开(我们将其称为“Jim.exe”)时,它运行顺利。 Jim的不同部分将根据其使用的部分打开额外的Jim.exe。这直接不是问题。

问题是退出应用程序时并非所有这些附加进程都关闭。这无疑是对开发的疏忽,但设计该过程的人不再适用于该项目。

原创尝试解决方案。 我的任务是找到一种方法来关闭那些流氓进程。我确实得到了一些帮助,使用VBS来搜索和销毁这些进程。使用以下内容:

Kill.vbs:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery _
     ("SELECT * FROM Win32_Process WHERE Name = 'Jim.exe'")
    For Each objProcess in colProcessList
     objProcess.Terminate()
    Next

但是我找不到将它附加到任何类型的close事件的方法,所以我想出了一个.bat来启动exe并包含它直到它关闭从而触发kill.vbs:

Box.bat(Box.exe)

    "C:\Program Files\Jim Folder\Jim.exe"

    Call "C:\Program Files\Jim Folder\Kill.vbs"

我将上面的.Bat转换为自己的exe,这样用户就可以使用这个“Box.exe”的快捷方式来打开实际的exe。 2.等待应用程序关闭3.触发Kill.vbs。

完美的作品!但是我不能用它...... Box.exe立即被AV标记并被吃掉......你可能会猜到为什么。

我的问题。 可能有另一种安排方式,所以AV不吃我的.Exe?或者是一种不同的脚本方式,可以在关闭应用程序后关闭恶意进程。我相信有多种方法可以解决这个问题,但我正在画一个空白。它不一定是vbs或.bat必须有任何脚本或代码,如果我可以分开使它工作的东西。

目标。 一种杀死应用程序未关闭的Rogue进程的方法。

P.S。我使用Bat2Exe将Box.bat转换为Box.exe

我真的希望这很清楚,如果您需要更多信息,请告诉我。它也是面向用户的,所以当它启动时我不能打开终端窗口,我无法进行AV隔离。

0 个答案:

没有答案