2012-04-18 12 views

risposta

3

Risposta facile per quello sarebbe: no.

La cosa migliore che si può fare è accedere in modo programmatico alla libreria del task scheduler e vedere se il processo si è in modalità "in esecuzione", ottenere il PID del processo (lo scheduler lo scrive effettivamente nella sua cronologia) e confrontarlo al tuo.

La cosa più semplice da fare sarebbe accedere ai registri eventi di sistema e vedere se c'è qualche riferimento all'esecuzione del file exe (anche se potrebbe non essere un log di questo tipo se l'exe è stato effettivamente eseguito).

L'unica cosa che è possibile associare al processo è il chiamante (che potrebbe essere SERVIZIO DI RETE o un account predefinito) che non fornisce alcuna informazione in merito alla sua programmazione.

0

Ho provato per un tempo per risolvere questo stesso problema, tuttavia non sembra possibile utilizzando l'API corrente. Se si dispone di un riferimento all'attività in esecuzione, è possibile ottenere il PID del motore di attività che l'ha avviato. Da lì, si possibile di andare al registro eventi compito e cercare gli ultimi eventi con ID 200 (azione introduttiva) aventi lo stesso PID del motore, ma dal momento che è possibile avere più processi attività in esecuzione sotto un unico motore di attività, è possibile 't andare oltre con assoluta certezza (ad esempio, una seconda istanza del processo potrebbe essere in esecuzione sotto lo stesso PID del motore - non sarà in grado di dire quale ID di correlazione appartiene al vostro processo di destinazione.)

Problemi correlati