如何在另一个程序启动时启动一个程序

The*_*956 15 windows windows-7

我希望每次启动另一个程序时启动一个程序。

下面是一个例子:每次我启动谷歌浏览器时,我都希望 iTunes 同时启动。

此外,我希望它在我单击浏览器中启动程序的链接时启动(例如“在 iTune 网站上的 iTunes 中查看)”。

我不想与 .bat 文件有关。

我在 Windows 7 上运行

Pau*_*aul 24

您可能可以设置特定的应用程序对以使用注册表运行,并更改处理 mimetype 的内容。然而,另一种更通用、更复杂的方法是使用任务计划程序。任务调度程序可以基于各种类型的触发器启动应用程序,包括事件日志条目。

所以我们需要的是确保每当应用程序启动时都会创建一个事件,然后创建一个计划任务以在记录事件时启动。

启用“应用程序启动”日志记录

  1. 启动并进入secpol.msc运行框
  2. 导航到本地政策/审计政策
  3. 双击审核进程跟踪并启用Success

现在,如果您启动任何应用程序,如果您查看事件查看器/安全日志,您将在每次启动应用程序时看到进程创建事件4688

基于触发器创建计划任务

  1. 打开任务计划程序并创建一个新任务
  2. 常规选项卡上,为任务命名
  3. Triggers选项卡上,创建一个新触发器,然后选择On an event作为触发器
  4. 选择Custom,然后单击Edit Event Filter
  5. 更改过滤器设置如下:

任务过滤器

现在切换到XML选项卡,并手动启用编辑查询

您将看到以下内容

<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=4688)]] 
    </Select>
  </Query>
</QueryList>
Run Code Online (Sandbox Code Playgroud)

现在你只需要添加你想要触发的应用程序。例如,这个notepad.exe用作触发器:

<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=4688)]] 
   and 
     *[EventData[Data[@Name='NewProcessName'] and (Data='C:\Windows\System32\notepad.exe')]]
    </Select>
  </Query>
</QueryList>
Run Code Online (Sandbox Code Playgroud)

单击Ok此处,然后Ok关闭触发对话框。

现在选择Action选项卡,然后创建一个新操作,即Start a Program,然后浏览到要与触发器应用程序一起启动的应用程序。

  • 要将触发器设置为程序/进程退出/终止/关闭而不是启动/创建,事件过滤器的此 XML 对我有用:`&lt;QueryList&gt; &lt;Query Id="0" Path="Security"&gt; &lt;Select Path= "Security"&gt; *[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (band(Keywords,9007199254740992)) and (EventID=4689)]] 和 *[EventData[(Data='PATH]到所需的 EXE')]] &lt;/Select&gt; &lt;/Query&gt; &lt;/QueryList&gt;` (2认同)
  • 在 Windows 10 上,@Name='NewProcessName' 需要更改为 @Name='ProcessName' (2认同)