Para saber si tu programa se cerro correctamente, basta dejar una marca al abrirlo y quitarla al cerrarlo "normalmente". Luego, en el proceso de inicio, chequear si la marca existe. De esta forma se sabrá que no hubo un cierre "limpio" del programa y podes tomar cualquier acción.
La marca puede ser cualquier dato persistente. Un archivo, un registro en una tabla, una clave en el registro... en fin, cualquier cosa.
Hasta luego.