Работа в качестве сервиса:
Сервис каждые 30 сек. проверяет состояние терминальных сессий, и в случае когда состояние равно «Отключена» запускает в отключенной сессии «Close1s.exe» с ключом –close.
Close1s.exe с ключом –close имитирует работу пользователя по закрытию 1С, ищет процесс с именем 1cv7* или 1cv8* находит его окно, посылается команда закрытия окна 1С, если всплывают диалоги закрытия или о сохранении изменений в 1С, то на вопросы отвечается утвердительно «Да» , 1С завершает работу штатным методом. Если в течении 10 сек. так и не удалось завершить 1С (в случаях когда 1С зависла и не отвечает на действия пользователя) процесс 1С уничтожается.
Примеры использования программы «Close1s.exe»:
Для инсталляции сервиса можно скопировать «Close1s.exe» в папку C:\WINDOWS, затем выполнить команду инсталляции сервиса «Пуск» - «Выполнить»- «C:\WINDOWS\ Close1s.exe -install». Сервис установится с именем «Закрытие 1С при отключении сессии».
Для удаления сервиса выполните команду «Пуск» - «Выполнить»- «C:\WINDOWS\ Close1s.exe -uninstall».
Есть возможность использовать «Close1s.exe» не в качестве сервиса, а как программу (например для использования в своих скриптах или батниках, с ключом «-close»), для этого выполните команду «Пуск» - «Выполнить»- «C:\WINDOWS\ Close1s.exe -close».
Дополнение, о настройках терминального сервера:
В настройке службы терминалов («Пуск» - «Все программы»-«Администрирование»-«Настройка служб терминалов» или «Пуск» - «Выполнить»- «%SystemRoot%\system32\tscc.msc /s»)
В своиствах RDP-Tcp на закладке «Сеансы» поставить галочку «Заменить параметры пользователя», выбрать «Завершение отключенного сеанса» 1 мин. или больше, поставить галочку «Заменить параметры пользователя При превышении ограничений или разрыве подключения», выбрать «Отключить сеанс».
Обновление:
+ добавлены настройки ini файл:
[options]
to_answer_the_question=1
interval_of_session_inactivity=0
wait_before_killing=10
описание параметров:
to_answer_the_question - отвечать на вопросы 1=Да, 0=Нет .
interval_of_session_inactivity - интервала неактивности отключонной сессии в минутах, если 0=сразу
wait_before_killing - ожидание в секундах перед уничтожением процеса 1С (если не смогли выключить).
+ Настройки ini файла лежащий рядом с exe действует на всех пользователей,
для индивидуальной настроки пользователей разместите ini файл в каталоге пользователя
например пользователю User: « C:\Documents and Settings\User\Close1s.ini».
Обновление от 22.05.2013:
+ изменен алгоритм по кнопкам, теперь учитываются диалоговые окна: «Да/Нет», « Ок/Отмена», «Ок» и т.д.