none
Идентификация всплывающих окон программы при отключённом терминальном сеансе RRS feed

  • Вопрос

  • На серверах под Windows 2003/2008 в терминальном сеансе ис-под конкретного пользователя запущена программа, которая выдаёт всплывающие окна при сбое. В шедулере работает AUTOIT скрипт, который реагирует на всплывающие окна программы, сообщающие об ошибках. Всё работает при включённом терминальном сеансе, но при отключении последнего программа продолжает работать, но скрипт всплывающие окна уже не видит. Программа аудентификации окон TesserAct (также запускаемая из-под AUTOIT скрипта) тоже не видит всплывающие окна при отключённом сеансе. Вопрос - где хранится информация об открытых окнах программы при отсутствии подключения к рабочему столу и как её можно извлечь и идентифицировать  соответствующие окна. 

    Не думаю, что здесь помогут X-Starter, nncron, или  запуск программы от имени учётной записи  "LOCAL_SYSTEM".  Если нет открытого рабочего стола, значит нет и окон программы - я не прав?

    Определить  окна по соответствующим процессам в диспетчере тоже не получается - нужно определение текста окна (или слвпадение с эталоном).

    22 декабря 2011 г. 8:27

Ответы

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

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


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий
    Follow us on TwitterFollow MSTechnetForum on Twitter

    Посетите Блог Инженеров Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    • Помечено в качестве ответа Yuriy Lenchenkov 10 января 2012 г. 11:37
    26 декабря 2011 г. 13:06
    Модератор

Все ответы

  • Всё работает при включённом терминальном сеансе, но при отключении последнего программа продолжает работать,


    Это как? Это речь про disconnect?
    Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/
    23 декабря 2011 г. 9:08
    Модератор
  • 1) Окно - это всего лишь отрисовка события в системе. Если графический интерфейс выключен (т.е. сеанс разорван и программы выполняются в фоновом режиме), то события останутся, а графического их отображения не будет, равно как и события отрисовки. Вывод - скрипт лучше настроить на срабатывание по какому-то иному признаку появления этих сообщений, например, по записи в журналах системы или по изменению лог-файла самой программы. Иные варианты при вашей постановке задачи отсутствуют, как класс.

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


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий
    Follow us on TwitterFollow MSTechnetForum on Twitter

    Посетите Блог Инженеров Доклады на Techdays: http://www.techdays.ru/speaker/Vinokurov_YUrij.html
    • Помечено в качестве ответа Yuriy Lenchenkov 10 января 2012 г. 11:37
    26 декабря 2011 г. 13:06
    Модератор