![如何在另一个程序停止时启动一个程序](https://linux22.com/image/1508967/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%81%9C%E6%AD%A2%E6%97%B6%E5%90%AF%E5%8A%A8%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F.png)
我努力了如何在另一个程序启动时启动一个程序并且这运行完美。但是反过来怎么样?我想在 chrome 关闭时运行 .bat。我说的“关闭”是指...我启动 chrome,当我关闭它时,我希望发生一些事情。
Process termination
代表带有 ID 的事件4689
所以我尝试过:
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13312 and (band(Keywords,9007199254740992)) and (EventID=4689)]]
and
*[EventData[Data[@Name='NewProcessName'] and (Data='PATH TO CHROME')]]
</Select>
</Query>
</QueryList>
但它根本不起作用...当我关闭 chrome 时,任务没有显示任何新日志。
我是不是遗漏了什么?
Task = 13312
默认情况下,使用的部分Process Terimation
是Task = 13313
,但是我已尝试使用和13312
,13313
但似乎不起作用。
更新 1: Chrome 并不是选择并尝试使用任务调度程序的最佳“示例”。我还尝试了不同的程序,这些程序在关闭后没有任何后台处理,例如记事本、扫雷等……这些程序似乎都无法触发任务。
答案1
您不需要使用@Name='NewProcessName'
,而需要使用@Name='ProcessName'
。然后使用Task = 13313
(正如您自己提到的)。然后一切都按预期进行。检查这。
答案2
审计成功有两个进程终止 - 一个是在应用程序启动时,另一个是在应用程序关闭时。您需要添加“and (Data='0x0')”作为参数之一,因为我们想要查看第二个审计成功进程终止。请注意,我们查看的事件不是应用程序进程终止,而是审计成功进程终止。
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13313 and (band(Keywords,9007199254740992)) and (EventID=4689)]]
and
*[EventData[(Data='C:\Program Files\Genshin Impact\launcher.exe') and (Data='0x0')]]
</Select>
</Query>
</QueryList>
复制粘贴上述代码,并将目录更改为您想要在关闭时触发的应用程序(EventData[(Data='PATH HERE')。