2

Некоторые приложения не могут быть запущены более одного раза за раз.

Есть ли способ обойти это? И заставить эти программы "думать", что другие экземпляры этого приложения не работают?

Windows 7 32 бит

1 ответ1

4

В общем нет.

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .