У меня есть приложение, которое использует соединение сокета для отправки и получения данных из другого приложения. При создании сокета он использует порт 4998.Как запустить только один экземпляр приложения
Вот где моя проблема. Как только я запустил приложение, сокет начнет использовать порт 4998. Поэтому, если я хочу снова выполнить приложение, я получаю ошибку привязки сокета.
Поэтому я хочу ограничить свой экземпляр приложения одним. Это означает, что если приложение уже запущено, а кто-то пытается запустить приложение снова, нажав значок exe или ярлык, он не должен запускать программу, вместо этого он должен привести существующее приложение в верхнюю часть.
Сначала вызывается OpenMutex(), у вас есть условие гонки. Сначала вызовите CreateMutex/Ex(). Он расскажет вам, существует ли мьютекс. Вызовите OpenMutex() только в случае сбоя CreateMutex() с ошибкой ERROR_ACCESS_DENIED. –
Любые советы о том, как сделать эту работу на Win7 +? Глобальные \ x мьютексы не видят друг друга из разных сеансов входа в систему ... –
@ RomanPlášil они действительно делают, вы, должно быть, сделали что-то не так – paulm