), что вероятно программа периодически запускается по таймеру и работает некое время, и может быть не успевает завершиться до следующего запуска.
в принципе да, всё похоже, просто из условий не совсем непонятно что ты хочешь от схемы
если расширить всю схему на несколько запусков:
первый запуск:
1) запускается программа:
а) проверяется наличие флага, если нет - создается флаг, если есть - значит предыдущий запуск был не закончен и возможно нужно сделать что-то еще по устранению последствий, либо работает другой экземпляр программы - проблема в том чтобы различить эти моменты?
б) делается дело,
в) удаляется флаг и завершается программа,
второй запуск:
2) см.п.1
Так?
%appdata%\microsoft\windows\start menu\programs\startup\