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


14

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

举个例子:每次启动Google Chrome时,我都希望iTunes同时启动。

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

我不想与.bat文件有关。

我在Windows 7上运行


你能澄清一下吗?第一种选择是,如果您打开Chrome,iTunes也将启动。但是第二个选项-当您单击打开iTunes的链接时,是否还希望打开其他内容?
保罗

这些只是示例,基本上我想在启动一个或另一个程序时启动多个程序
TheBird956

Answers:


19

您可能会设置特定的应用程序对,以使用注册表运行,并更改与mimetypes进行的交易。但是,另一种更通用,更复杂的方法是使用任务计划程序。任务计划程序可以基于各种类型的触发器(包括事件日志条目)启动应用程序。

因此,我们所需要做的就是确保在应用程序启动时创建一个事件,然后创建一个计划任务以在记录该事件时启动。

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

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

现在,如果您启动任何应用程序,那么如果您查看事件查看器/安全日志,则每次启动应用程序时都会看到一个“ 流程创建”事件4688

根据触发器创建计划任务

  1. 打开任务计划程序并创建一个新任务
  2. 常规选项卡上,为任务命名
  3. 在“ 触发器”选项卡上,创建一个新触发器,然后选择“ 在事件上”作为触发器
  4. 选择“ 自定义”,然后单击“ 编辑事件过滤器”。
  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>

现在,您只需要添加要引起触发的应用程序。例如,此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>

单击OkOk按钮,然后关闭触发器对话框。

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


我没有任何名为secpol.msc的东西。我做了一个小尝试,因为它在Windows 7 Home Premium中不可用。还有另一种方法吗?
TheBird956'2014-4-24

W7HP缺少审核策略才能使它起作用。有一些指南可以在W7HP上安装gpedit.msc。您也可以以此编辑审核政策,在Computer Configuration/Windows Settings/Security Settings/Audit Policy
Paul

@ TheBird956您是否设法使其正常工作?
保罗

我没有正确的Windows版本。我认为我需要Pro来做到这一点,但是我尝试在装有Pro且可以正常工作的哥哥的计算机上进行尝试。
TheBird956

1
要将触发器设置为编程/过程退出/终止/关闭而不是启动/创建,此事件过滤器的XML对我<QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (band(Keywords,9007199254740992)) and (EventID=4689)]] and *[EventData[(Data='PATH TO THE DESIRED EXE')]] </Select> </Query> </QueryList>
有用

0

我确信上述Paul的答案可能对大多数人都有效,但是由于某种原因,我无法使其与我的程序配合使用。

为Notepad.exe指定路径时,任务已成功创建;当我将路径更改为要使用的程序之一An event filter for a trigger is not valid时,在任务创建结束时按“确定”时,总是会出错。考虑事件过滤器看起来与Paul的事件过滤器(我自己按照他的过程生成)完全一样,只是我的程序位于Program Files(x86)文件夹中。

我最终通过安装外部软件Bill's Process Manager解决了我的问题。荣誉对这个StackExchange答案吧。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.