Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows:如何打开一个EXE,让它运行,然后在它关闭后触发另一个脚本。_Windows_Batch File_Vbscript_Cmd_Exe - Fatal编程技术网

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

Windows:如何打开一个EXE,让它运行,然后在它关闭后触发另一个脚本。,windows,batch-file,vbscript,cmd,exe,Windows,Batch File,Vbscript,Cmd,Exe,背景。 因此,我的一个团队已经建立了一个桌面应用程序安装程序和所有。它运行并打开不同的进程,这取决于它当时使用的功能 这个问题。 当我们打开(我们称之为“Jim.exe”)时,它运行平稳。Jim的不同部分将打开额外的Jim.exe,具体取决于它使用的部分。这不是问题所在 问题是,当您退出应用程序时,并非所有这些附加进程都会关闭。诚然,这是开发过程中的一个疏忽,但设计该过程的人不再在项目中工作 最初尝试的解决方案。 我的任务是找到一种方法来关闭那些流氓进程。我确实得到了一些帮助,使用VBS搜索和销

背景。 因此,我的一个团队已经建立了一个桌面应用程序安装程序和所有。它运行并打开不同的进程,这取决于它当时使用的功能

这个问题。 当我们打开(我们称之为“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
但是,我找不到将其附加到任何类型的关闭事件的方法,因此我想出了一个.bat来启动exe并包含它,直到它关闭,从而触发kill.vbs:

Box.bat(Box.exe)

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

工作完美!但是我不能用它。。。 Box.exe立即被AV标记并被吃掉。。。你大概能猜出原因

我想问你一个问题。 是否有其他方法来安排这样AV就不会吃我的.Exe了?或者一种不同的脚本编写方法,一旦应用程序关闭,它将关闭恶意进程。我确信有多种方法可以解决这个问题,但我对此一无所知。它不必是vbs或.bat,只要我能分辨出它的工作原理,任何脚本或代码都可以

进球。 一种杀死应用程序未关闭的恶意进程的方法

p、 我使用Bat2Exe将Box.bat转换为Box.exe


我真的希望这是足够清楚,以了解让我知道,如果你需要更多的信息。此外,它将面向用户,因此在启动时,我不能让终端窗口打开,也不能让AV隔离它。

如果转换的批处理文件有效,为什么不能在不转换的情况下使用批处理文件?我试图避免用户点击桌面上的批处理文件。我可以很容易地阻止航站楼的窗户打开。Webroot和Windows defender似乎也不喜欢批处理文件。它将它标记为不同的东西,但我不能让用户真正需要允许他们的AV让它离开。奇怪的是,它根本没有标记.vbs。我希望有一种方法可以对exe进行签名或在某个地方注册,这样它就不会被标记,但我也没有太多的运气来搜索它。exe被标记为特洛伊木马,而.bat被标记为.heur。我宁愿它保持原样,因为它确实有效,但我在这方面被拒绝了。好消息!实际上,我们能够保持原样。签署安装程序似乎已经转移到Box.exe,防止它被AVP吃掉。请将您找到的解决方案作为答案而不是评论发布;因此,您可以接受它,并且问题不再出现在so数据库中…如果转换的批处理文件有效,为什么您不能直接使用批处理文件而不进行转换?我试图避免用户单击桌面上的批处理文件。我可以很容易地阻止航站楼的窗户打开。Webroot和Windows defender似乎也不喜欢批处理文件。它将它标记为不同的东西,但我不能让用户真正需要允许他们的AV让它离开。奇怪的是,它根本没有标记.vbs。我希望有一种方法可以对exe进行签名或在某个地方注册,这样它就不会被标记,但我也没有太多的运气来搜索它。exe被标记为特洛伊木马,而.bat被标记为.heur。我宁愿它保持原样,因为它确实有效,但我在这方面被拒绝了。好消息!实际上,我们能够保持原样。签署安装程序似乎已经转移到Box.exe,防止它被AVP吃掉。请将您找到的解决方案作为答案而不是评论发布;所以你可以接受它,问题不再出现在so数据库中。。。
    "C:\Program Files\Jim Folder\Jim.exe"

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