как убить программу, используя c ++, когда та же самая программа открывается дважды? - PullRequest
0 голосов
/ 27 мая 2018

скажем, у меня есть программа на C ++, названная "A.exe". Если кто-то дважды ее открыл, программа должна ее убить, а затем запустить как одну отдельную программу.

ПРАВИЛО: она должна быть уничтожена этимпрограмма (НЕ с помощью какой-либо другой программы).

Моя проблема в том, что если я использую

system("taskkill /im A.exe /t");

, но он тоже убивает себя.

1 Ответ

0 голосов
/ 27 мая 2018

Используйте именованный мьютекс, он может удерживаться только одним потоком одновременно, создайте его в начале вашей программы, если вам не удалось получить мьютекс, это потому, что уже запущена другая копия вашей программы (и владея мьютексом, вы можете безопасно завершить программу (не вызывая никаких внешних программ, полагаясь на поиск определенных имен файлов и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...