Сегодня передо мной поставили несложную, но интересную задачу. 🙂
Дано.
Есть некий сферический бухгалтер в вакууме. Любит этот бухгалтер понаоткрывать туеву хучу экземпляров 1С.
Надо.
Не дать этому бухгалтеру через стандартный ярлык запускать более одного экземпляра 1С.
Решение.
Предположим, что у нас стандартная ситуация, и 1С запускается со стандартного ярлыка, который ссылается на программу «1cestart.exe».
Далее эта программа запускает уже непосредственно 1С. При этом, она может запустить следующие исполняемые файлы:
- 1cv8.exe
- 1cv8c.exe
- 1cv8s.exe
Соответственно, мы подменяем ярлык запуска. Новый ярлык должен выглядеть также, как и стандартный, но ссылаться не на 1cestart.exe, а, например, на 1cestart.bat.
В файле 1cestart.bat у нас будет обычный батник, который делает следующее:
- Получает количество запущенных экземпляров программы 1cv8s.exe
- Получает количество запущенных экземпляров программы 1cv8c.exe
- Получает количество запущенных экземпляров программы 1cv8.exe
- Складывает полученные значения.
- Если суммарно количество запущенных экземпляров 1С превышает разрешённое количество, не запускает 1С, а выдаёт предупреждающее сообщение.
Скрипт несложный.
Замечание 1!
В строке
if %res% GTR 0 (
указываем количество разрешённых экземпляров программы «минус один». Т.е., если разрешён один экземпляр, указываем «0». Если разрешено 2 экземпляра, указываем «1». И т.д..
Замечание 2!
Если сферический бухгалтер в вакууме окажется неглупым и начнёт запускать 1С непосредственно из папки установки, придётся, конечно, при помощи планировщика Windows запускать скрипт, который будет «грохать» лишние экземпляры 1С…
Но пока до этого не дошло… 🙂