Флаг1 - обычный файлик, формируемый по запуску
Флаг2 - файлик, формируемый по запуску, созданный с использованием FILE_ATTRIBUTE_TEMPORARY и FILE_FLAG_DELETE_ON_CLOSE, см. выше.
Флаг3 - обычный файлик, формируемый по завершении процесса
Запустили,
если есть флаг1, но нет флаг2 и флаг3, то - Уборщица.
если есть флаг1 и флаг2, но нет флаг3, то - активная копия запущена
если нет флаг1 - обнуляем все флаги нафиг и запускаем
Это если я правильно понимаю логику этих опций, конечно. И если ну ооооочень не хочется действительно просто сделать автоматически стираемую директорию при запуске.