Назад | Перейти на главную страницу

Как заставить Windows запускать только один экземпляр стороннего приложения?

У меня 64-разрядная машина с Windows Server 2008, и есть одна программа, которая запускается при запуске (ярлык находится в папке «Автозагрузка»). Поэтому, когда пользователь входит в систему, приложение запускается.

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

Теперь каждый раз, когда приложение запускается, оно загружает некоторые данные из внешнего буфера через локальную сеть. Это записи звонков для нашей телефонной системы. Но поскольку у нас одновременно работает несколько экземпляров, возникают проблемы и несоответствия с данными.

Есть ли способ заставить Windows запускать только один экземпляр приложения? В качестве альтернативы, можно ли запустить это приложение как службу Windows?

У вас есть программа в папке «Автозагрузка», и вы предпочитаете запускать ее как службу? Создать сервис, используя НССМ и выньте его из папки автозагрузки.

Обратите внимание: если кому-то понадобится использовать эту программу в интерактивном режиме, ему нужно будет остановить службу и запустить программу в обычном режиме. По завершении интерактивного сеанса ей нужно будет закрыть программу, а затем запустить службу.

В Windows нет встроенной функции, которая могла бы делать то, о чем вы просите.

Параметры: - запустить приложение как службу, если у него нет графического интерфейса - переместить приложение из папки автозагрузки - переместить приложение в папку автозагрузки определенного пользователя, который будет входить в систему только в одном параллельном сеансе - написать скрипт как cmd или ps скрипт, который «делает правильные вещи» (например, проверяет, запускалось ли приложение в последнее время, и т. д.)