Ну самое простое - написать простой скрипт, который проверяет наличие процесса программы, и запускает её только при отсутствии такового. Запускать вместо исполняемого файла программы.
Я бы создал в планировщике заданий task, который будет отслеживать журнал Windows на предмет запуска новых процессов и запускать скрипт для подсчёта запущенных процессов и завершения лишних.