Como iniciar um programa quando outro é iniciado

14

Quero que um programa seja iniciado sempre que outro estiver sendo iniciado.

Aqui está um exemplo: Sempre que inicio o Google Chrome, gostaria que o iTunes iniciasse ao mesmo tempo.

Além disso, quero que ele inicie quando clico em um link no meu navegador que inicia um programa (como "visualização no iTunes no site do iTune).

Eu não quero ter a ver com um arquivo .bat.

Estou executando no Windows 7

TheBird956
fonte
Você pode esclarecer. A primeira opção é que, se você abrir o Chrome, o iTunes começará também. Mas a segunda opção - quando você clica em um link que abre o itunes, também deseja que outra coisa seja aberta?
Paul
Esses são apenas alguns exemplos, basicamente eu quero iniciar programas mutiple quando eu quero começar um ou outro programa quer iniciá-lo
TheBird956

Respostas:

19

Provavelmente, você pode configurar pares específicos de aplicativos para serem executados usando o registro e alterar o que lida com os tipos MIME. No entanto, outra maneira mais genérica e muito mais complexa é usar o Agendador de tarefas. O agendador de tarefas pode iniciar um aplicativo com base em vários tipos de gatilhos, incluindo entradas do log de eventos.

Portanto, tudo o que precisamos é garantir que um evento seja criado sempre que um aplicativo for iniciado e, em seguida, criar uma tarefa agendada para iniciar sempre que o evento for registrado.

Habilitar o log de 'início do aplicativo'

  1. Inicie e entre secpol.mscna caixa Executar
  2. Navegue para Políticas locais / Política de auditoria
  3. Controle de processo de auditoria de clique duplo e ativarSuccess

Agora, se você iniciar qualquer aplicativo, se olhar no Event Viewer / Security Log, verá um evento Process Creation4688 cada vez que um aplicativo for iniciado.

Criar tarefa agendada com base no acionador

  1. Abra o Agendador de tarefas e crie uma nova tarefa
  2. Na guia Geral , dê um nome à tarefa
  3. Na guia Gatilhos , crie um novo gatilho e escolha Em um evento como gatilho.
  4. Escolha Personalizado e clique em Editar filtro de eventos
  5. Altere as configurações de filtro da seguinte maneira:

Filtro de tarefas

Agora alterne para a guia XML e ative a consulta de edição manualmente

Você verá o seguinte

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

Agora você só precisa adicionar o aplicativo que deseja causar o gatilho. Por exemplo, este usa notepad.execomo gatilho:

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

Clique Okpara isso e Okfeche a caixa de diálogo do acionador.

Agora escolha a guia Ação e crie uma nova ação, ou seja Start a Program, e navegue até o aplicativo que você deseja iniciar junto com o aplicativo acionador.

Paulo
fonte
Eu não tenho nada com o nome secpol.msc. Fiz uma pequena pesquisa e acho que é porque não está disponível no Windows 7 Home Premium. Existe outro caminho?
TheBird956
A política de auditoria precisa ser alterada para que isso funcione e está ausente no W7HP. Existem alguns guias para instalar o gpedit.msc no W7HP, que você pode querer experimentar. Você também pode editar a política de auditoria com isso, emComputer Configuration/Windows Settings/Security Settings/Audit Policy
Paul
@ TheBird956 Você conseguiu fazê-lo funcionar?
Paulo
Eu não tenho a versão correta do Windows. Acho que preciso do Pro para fazer isso, mas tentei no computador do meu irmão quem possui o Pro instalado e ele funciona.
TheBird956
11
Para definir o gatilho para programa / saída do processo / terminação / fechar em vez de start / criar, este XML para o filtro de eventos trabalhou para mim: <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

Estou certo de que a resposta de Paulo acima pode funcionar para a maioria das pessoas, no entanto, por algum motivo, não consegui fazê-la funcionar com meu programa.

Ao especificar o caminho para o Notepad.exe, a tarefa foi criada com sucesso; quando mudei o caminho para o programa que pretendia usar, sempre recebia um An event filter for a trigger is not validerro ao pressionar OK no final da criação da tarefa. Considere que o filtro de eventos se parece exatamente com o de Paul (eu mesmo o criei seguindo seu procedimento), com a exceção de que meu programa foi instalado na pasta Arquivos de Programas (x86).

Acabei resolvendo meu problema instalando um software externo, o Bill's Process Manager . Parabéns pela resposta do StackExchange .

alexlomba87
fonte