Проверка запущена ли программа и запуск если не запущена (Mobi-C)

Опубликовано Опубликовано в рубрике 1C Программирование

Делалось для автозапуска обработки Mobi-C

Как проверить запущен ли определенный процес и запустить его если он не запущен Windows Server 2003 RU

Создаем файлик с расширением *.cmd

Содержимое:

@echo off
set application=1cv7s.exe
tasklist /FI "Пользователь eq ххх" | find /I "%application%" >nul
if errorlevel 1 (
  echo %application% is not running
  d:\automation\mobi-c.vbs
) else (
  echo %application% is running
)

Описание:

Для работы определенной обработки в 1С необходимо контроллировать постоянно запущенный процесс 1С. В случае когда процесс оказывается заркытым — запустить скрипт который откроет 1с и откроет необходимую обработку. Решается такая задача вот как: пакетный файлик помещается в планировщик задач и вызывается каждые 10 минут, в пакетном файле определено название процесса «1cv7s.exe» и имя пользователя под которым запускается данный процесс «xxx«. Далее при помощи команды tasklist проверяется запущен ли у данного пользователя указанный процесс и в случае если процесс не запущен он запускается скриптом, в данном случае mobi-c.vbs.

листинг mobi-c.vbs:
Dim Delay 'время ожидания загрузки 1С 1000 = 1 сек
Dim Name 'имя пользователя 1С
Dim Password 'пароль пользователя 1С
Dim MobiC 'путь ко внешнему отчету Моби-С, допустимо только использование латиницы

Delay  = 10000
Name = "zzz"
Password = "yyy"  
MobiC = "E:\2009\ExtForms\Mobi-c.ert" 

set wshShell = wScript.createObject("wScript.shell")
wshShell.run """C:\Program Files\1Cv77\BIN\1cv7s.exe"" enterprise /d""E:\2009\"" /n" + Name + " /p" + Password

Описание:

Необходимо указать имя и пароль пользователя, путь к внешней обработке *.ert и путь к 1с приложению