2017-01-23 3 views
0

По определенным причинам я должен запустить приложение форм Windows на сервере Windows (2012 RC2, размещенном LiquidWeb). Само приложение формы создается из консольного приложения при определенных изменениях файловой системы.Дайте фокус окна на сервере Windows без активного сеанса

Целью приложения является автоматизация задачи с помощью элемента управления WebBrowser. Чтобы выполнить задачу, нам нужно через различные промежутки времени отправить ключевой ввод в приложение форм (для загрузки и загрузки файлов). Чтобы это работало, приложение должно иметь фокус. Я использую код в this thread, чтобы уделить внимание приложению, без проблем.

Это все работает хорошо, до тех пор, пока я вошел в систему (через удаленный рабочий стол). Однако, когда я закрываю сеанс удаленного рабочего стола (без выхода из системы), похоже, что приложение формы не может получить фокус.

Нерест работает хорошо, приложение форм инициирует и запускает сеанс браузера, как планировалось, но просто не получает фокус. Когда я запишусь назад с помощью Remote Desktop, я вижу приложение форм за консольным приложением.

Я пробовал любую комбинацию SetForegroundWindow/ShowWindow, о которой я могу думать, как непосредственно из приложения форм, так и из консольного приложения, которое порождает его. Я также попытался запустить скрипт AutoHotKey (содержащий команду WinActivate) из консольного приложения после появления приложения форм с таким же результатом (он работает до тех пор, пока у меня есть «визуальный» сеанс).

Любые идеи вообще?

ответ

0

Таким образом, похоже, что все это связано с тем, что удаленный компьютер блокируется при выходе из сеанса удаленного рабочего стола, тем самым предотвращая соответствующее приложение для управления фокусом.

Решение состоит в том, чтобы выйти из системы, используя команду tscon, как описано в статье this. В основном, выйдите, запустив файл bat со следующим содержимым:

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
    %windir%\System32\tscon.exe %%s /dest:console 
) 
Смежные вопросы