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

Разрешить программе в Windows запускаться несколько раз?

У меня есть устаревшее программное обеспечение, которое позволяет запускать только одну копию за раз, оно обнаруживает, что у вас открыт другой сеанс, и не позволяет открыть второй экземпляр. Проблема в том, что это программа, интенсивно использующая процессор и использующая только одно ядро. Есть ли какие-нибудь хаки или хитрости, чтобы я мог обмануть его и открыть более одного экземпляра? Это позволило бы мне отключить около 5 серверов ... Я использую Windows 2008 R2.

Мне пришлось использовать cff explorer, чтобы использовать более 2 ГБ ОЗУ, поскольку программа вылетает, когда пытается использовать более 2 ГБ.

Ограничение программы только одним экземпляром не является функцией ОС: ее нужно закодировать прямо внутри кода.

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

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

  • Проверка имени exe в списке процессов. Тривиально: переименовать exe, запустить.

  • Заблокируйте определенный файл. Это может быть тривиально или сложно, в зависимости от расположения файла.

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

В любом случае, самое простое - попросить разработчиков снять это ограничение.

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

Другой возможный вариант: программы, допускающие только один экземпляр, обычно делают это, создавая мьютекс. При запуске нового экземпляра проверяется наличие мьютекса, и выполнение останавливается, если он обнаружен. Можно написать программу, которая может запустить экземпляр, а затем удалить его мьютекс. Однако имейте в виду, что приложения, которые не ожидают более одного параллельного экземпляра, могут быть проблематичными с этим подходом, поэтому предпочтительнее некоторый уровень виртуализации, просто чтобы каждый экземпляр не знал или не взаимодействовал с другими.

App-V возможно, поможет вам здесь. Это позволяет вам запускать несколько экземпляров одной и той же виртуализированной программы, каждый из которых изолирован от другого.

Ctrl + Shift + двойной щелчок Значок ярлыка приложения

Откроется новый экземпляр приложения.