Я поддерживаю устаревшую систему Paradox 4.5 для DOS. Наши пользователи подключаются к одному терминальному серверу (Windows Server 2003) для запуска Paradox. Нам часто нужно выгружать всех из системы. Наш Paradox Admin будет подключаться к каждому сеансу удаленного рабочего стола, вывести пользователя из Paradox и выйти из Windows.
Хотелось бы автоматизировать этот процесс.
Закрытие окна DOS без закрытия парадокса может привести к повреждению данных. Если я могу отправлять нажатия клавиш в приложение, я могу корректно закрыть его.
1) Как отправлять нажатия клавиш в существующее окно DOS из винды? Я видел примеры vbscript и sendkeys, но они, похоже, используются для управления окнами, когда доступен дескриптор окна. Мне нужно управлять уже открытым окном.
2) Возможно ли автоматическое выполнение отправки нажатия клавиши при выходе из системы в режиме ожидания удаленного рабочего стола?
Не тестировал это (пока), но вот идея.
1) Представляется возможным используйте любую из функций SendKeys для передачи нажатий клавиш окну, находящемуся в фокусе, через Powershell.
Чтобы сфокусировать выбранное окно эта почта похоже, предоставляет фрагмент Powershell, если вы каким-то образом можете идентифицировать процесс окна Paradox. Если вы не можете этого сделать, я не могу себе представить, как это можно было бы автоматизировать, если только вы не найдете какое-то обходное решение, специфичное для работы Paradox.
2) Должна быть возможность прикрепить задачу к соответствующему идентификатору события который запускает ваш скрипт. Пока сценарий обрабатывается до выхода проводника и всех его дочерних окон (вам придется проверить это), я думаю, это может сработать.