How to start a program when another one is started

You could probably set up specific pairs of apps to run using the registry, and altering what deals with mimetypes. However another more generic way, and far more complex, is to use the Task Scheduler. The task scheduler can start an app based various types of triggers, including Event Log entries.

So all we need is to ensure an event is created whenever an application starts, and then create a scheduled task to start whenever the event is logged.

Enable 'application start' logging

  1. Start and enter secpol.msc into the Run box
  2. Navigate to Local Policies/Audit Policy
  3. Double Click Audit process tracking and enable Success

Now, if you start any application, if you look in Event Viewer / Security Log you will see a Process Creation event 4688 each time an application is started.

Create scheduled task based on trigger

  1. Open Task Scheduler and create a new task
  2. On the General Tab, give the task a name
  3. On the Triggers tab, create a new trigger, and choose On an event as the trigger
  4. Choose Custom, and click Edit Event Filter
  5. Change the Filter settings as follows:

Task filter

Now Switch to the XML tab, and enable edit query manually

You will see the following

<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>

Now you just need to add the application you want to cause the trigger. For example, this one uses notepad.exe as the trigger:

<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>

Click Ok for this, then Ok to close the trigger dialog box.

Now choose the Action tab, and create a new action, that is Start a Program, and browse to the app you want to start along with the trigger application.