В Можно ли не допустить многократный запуск одного и того же приложения?
В. Можно ли не допустить многократный запуск одного и того же приложения?
Да. Наиболее часто употребляемым для этого средством является создание объекта Mutex. Этот объект как раз и предназначен для того, чтобы координировать разные процессы. Создается данный объект при помощи функции CreateMutex. Рассмотрим параметры этой функции.
При запуске программы она создает Mutex. Второй параметр должен быть ненулевым. При вторичном запуске программы попытка создания Mutex вызовет ошибку, что и может расцениваться как повод немедленного выхода из программы.
К тому же результату можно прийти, используя семафор или файл, отображаемый в память. В данном случае все достаточно тривиально.
Еще один подход основан на разделяемой памяти. Определим область разделяемой памяти и там - переменную. При запуске приложение проверяет значение переменной, и если она равна нулю, то засылает туда единицу. Если переменная уже равна единице, то - выход (или действия, предусмотренные в этом случае).
Все способы, указанные в данном разделе столь просты, что мы больше не будем на них останавливаться.