Mira a ver si encuentras en
MSDN algún gancho (
hook) que te permita interceptar el inicio y el fin de una aplicación, aunque no me consta que haya algo así.
Revisar la lista de procesos activos podría ser otra posibilidad (también en MSDN puede que tengan información), pero no me parece una buena idea.