Come avviare un programma quando ne viene avviato un altro


14

Voglio che un programma si avvii ogni volta che ne inizia un altro.

Ecco un esempio: ogni volta che avvio Google Chrome, vorrei che iTunes iniziasse contemporaneamente.

Inoltre, voglio che inizi quando faccio clic su un collegamento nel mio browser che avvia un programma (come "visualizza in iTunes sul sito Web iTune).

Non voglio avere a che fare con un file .bat.

Sono in esecuzione su Windows 7


Puoi chiarire. La prima opzione è che se apri Chrome, inizia anche iTunes. Ma la seconda opzione: quando fai clic su un link che apre iTunes, vuoi aprire anche qualcos'altro?
Paul,

Questi sono solo esempi, in pratica voglio avviare programmi multipli quando voglio avviare uno o un altro programma vuole avviarlo
TheBird956,

Risposte:


19

Probabilmente potresti impostare coppie specifiche di app da eseguire utilizzando il registro e modificando ciò che riguarda i mimetipi. Tuttavia, un altro modo più generico e molto più complesso è utilizzare l'Utilità di pianificazione. L'utilità di pianificazione può avviare un'app basata su vari tipi di trigger, incluse le voci del registro eventi.

Quindi tutto ciò di cui abbiamo bisogno è assicurarci che venga creato un evento ogni volta che viene avviata un'applicazione, quindi creare un'attività pianificata da avviare ogni volta che l'evento viene registrato.

Abilita la registrazione 'avvio applicazione'

  1. Avvia ed entra secpol.mscnella casella Esegui
  2. Passare a Criteri locali / Criteri di controllo
  3. Fare doppio clic sul controllo del processo di verifica e abilitareSuccess

Ora, se avvii un'applicazione, se guardi il Visualizzatore eventi / Registro di sicurezza, vedrai un evento Creazione processo4688 ogni volta che viene avviata un'applicazione.

Crea attività pianificata in base al trigger

  1. Apri l' Utilità di pianificazione e crea una nuova attività
  2. Nella scheda Generale , assegnare un nome all'attività
  3. Nella scheda Trigger , crea un nuovo trigger e scegli Su un evento come trigger
  4. Scegli Personalizzato e fai clic su Modifica filtro eventi
  5. Modificare le impostazioni del filtro come segue:

Filtro attività

Ora passa alla scheda XML e abilita manualmente la modifica della query

Vedrai quanto segue

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

Ora devi solo aggiungere l'applicazione che vuoi causare il trigger. Ad esempio, questo utilizza notepad.execome 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>

Fare clic Okper questo, quindi Okper chiudere la finestra di dialogo del trigger.

Ora scegli la scheda Azione e crea una nuova azione, ovvero Start a Program, e passa all'app che desideri avviare insieme all'applicazione trigger.


Non ho niente di nome secpol.msc. Ho fatto una piccola ricerca e penso che sia perché non è disponibile in Windows 7 Home Premium. C'è un altro modo?
TheBird956,

La politica di audit deve essere modificata affinché funzioni, ed è assente da W7HP. Ci sono alcune guide là fuori per l'installazione di gpedit.msc su W7HP che potresti provare. Puoi modificare anche la politica di audit con questo, inComputer Configuration/Windows Settings/Security Settings/Audit Policy
Paul

@ TheBird956 Sei riuscito a farlo funzionare?
Paul

Non ho la versione di Windows corretta. Penso di aver bisogno di Pro per farlo, ma ho provato sul computer di mio fratello che ha installato Pro e funziona.
TheBird956,

1
Per impostare il trigger su program / process exit / termination / close invece di start / create, questo XML per il filtro eventi ha funzionato per me: <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

Sono sicuro che la risposta di Paul sopra potrebbe funzionare per la maggior parte delle persone, tuttavia per qualche motivo non sono riuscita a farlo funzionare con il mio programma.

Quando si specifica il percorso per Notepad.exe, l'attività è stata creata correttamente; quando ho cambiato il percorso a quello del programma che intendevo usare, ho sempre ricevuto un An event filter for a trigger is not validerrore quando ho premuto OK alla fine della creazione dell'attività. Considera che il filtro eventi è esattamente come quello di Paul (l'ho generato io stesso seguendo la sua procedura) con l'eccezione che il mio programma è stato inserito nella cartella Programmi (x86).

Alla fine ho risolto il mio problema installando un software esterno, il Process Manager di Bill . Complimenti a questa risposta StackExchange per questo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.