una soluzione sarebbe quella di fare un loop o usare un timer che "controlla" sempre se il processo (cioè il programma che non deve essere mai chiuso) è in esecuzione o meno e poi quando si accorge che il programma non stà girando scrive in un file xml.
in c# è molto semplice farlo....
tempo fa feci una cosa del genere...
http://www.sharebigfile.com/file/127...sharp-rar.html