Cómo iniciar un programa cuando se inicia otro

14

Quiero que se inicie un programa cada vez que se inicia otro.

Aquí hay un ejemplo: cada vez que inicio Google Chrome, me gustaría que iTunes se inicie al mismo tiempo.

Además, quiero que comience cuando hago clic en un enlace en mi navegador que inicia un programa (como "ver en iTunes en el sitio web de iTune).

No quiero tener que ver con un archivo .bat.

Estoy corriendo en Windows 7

TheBird956
fuente
¿Puedes aclarar? La primera opción es que si abres Chrome, iTunes también se inicia. Pero la segunda opción: cuando haces clic en un enlace que abre iTunes, ¿también quieres que se abra algo más?
Paul
Esos son solo ejemplos, básicamente quiero iniciar varios programas cuando quiero iniciar uno u otro programa, quiero iniciarlo
TheBird956

Respuestas:

19

Probablemente podría configurar pares específicos de aplicaciones para que se ejecuten usando el registro y alterar lo que se ocupa de los tipos MIME. Sin embargo, otra forma más genérica, y mucho más compleja, es usar el Programador de tareas. El programador de tareas puede iniciar una aplicación basada en varios tipos de disparadores, incluidas las entradas del Registro de eventos.

Entonces, todo lo que necesitamos es asegurarnos de que se crea un evento cada vez que se inicia una aplicación, y luego crear una tarea programada para comenzar cada vez que se registra el evento.

Habilite el registro de 'inicio de aplicación'

  1. Comienza y entra secpol.mscen el cuadro Ejecutar
  2. Vaya a Políticas locales / Política de auditoría
  3. Haga doble clic en el seguimiento del proceso de auditoría y habiliteSuccess

Ahora, si inicia cualquier aplicación, si mira en el Visor de eventos / Registro de seguridad, verá un evento de Creación de procesos4688 cada vez que se inicie una aplicación.

Crear tarea programada basada en disparador

  1. Abra el Programador de tareas y cree una nueva tarea
  2. En la pestaña General , asigne un nombre a la tarea
  3. Por disparadores pestaña, crear un nuevo disparo, y elegir en un evento como el gatillo
  4. Elija Personalizado y haga clic en Editar filtro de eventos
  5. Cambie la configuración del filtro de la siguiente manera:

Filtro de tareas

Ahora cambie a la pestaña XML y habilite la consulta de edición manualmente

Verás lo siguiente

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

Ahora solo necesita agregar la aplicación que desea que provoque el desencadenante. Por ejemplo, este usa notepad.execomo desencadenante:

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

Haga clic Okpara esto, luego Okcierre el cuadro de diálogo de activación.

Ahora elija la pestaña Acción y cree una nueva acción, es decir Start a Program, y busque la aplicación que desea iniciar junto con la aplicación desencadenante.

Pablo
fuente
No tengo nada llamado secpol.msc. Hice una pequeña investigación y creo que es porque no está disponible en Windows 7 Home Premium. ¿Hay otra manera?
TheBird956
Es necesario cambiar la política de auditoría para que esto funcione, y está ausente de W7HP. Existen algunas guías para instalar gpedit.msc en W7HP que quizás desee probar. Puede editar la política de auditoría con esto también, enComputer Configuration/Windows Settings/Security Settings/Audit Policy
Paul
@ TheBird956 ¿Lograste que funcione?
Paul
No tengo la versión correcta de Windows. Creo que necesito Pro para hacer eso, pero lo intenté en la computadora de mi hermano que tiene Pro instalado y funciona.
TheBird956
1
Para configurar el desencadenador para programar / procesar salida / terminación / cierre en lugar de iniciar / crear, este XML para el filtro de eventos funcionó para mí: <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>
V. Rubinetti
0

Estoy seguro de que la respuesta anterior de Paul podría funcionar para la mayoría de las personas, sin embargo, por alguna razón no pude hacer que funcione con mi programa.

Al especificar la ruta para Notepad.exe, la tarea se creó correctamente; cuando cambié la ruta a la del programa que tenía la intención de usar, siempre recibí un An event filter for a trigger is not validerror al presionar OK al final de la creación de la tarea. Considere que el filtro de eventos se ve exactamente como el de Paul (lo generé yo mismo siguiendo su procedimiento) con la excepción de que mi programa se encuentra en la carpeta Archivos de programa (x86).

Eventualmente resolví mi problema instalando un software externo, Bill's Process Manager . Felicitaciones a esta respuesta de StackExchange por ello.

alexlomba87
fuente