Al momento ho risolto in questo modo..cosa che avevo pensato ma mi rifiutavo di utilizzare..
in pratica ho messo un timer con un intervallo di 1000 millisecondi...
quando il mio pgm viene richiamato più volte scrivo un file di 0kb da qualche parte ed esco.
nel frattempo l'istanza precedente col timer controlla se il form è visibile o meno se non visibile controlla se esiste il file..a questo punto va in primo piano sullo schermo e cancella il file.
per gestire l'evento Exited alla dichiarazione del processo bisogna abilitare gli eventi con miprocesso.EnableRaisingEvents = true;
ecco perchè non funzionava..