Задать вопрос
nikitao
@nikitao

Как послать WM_LBUTTONDOWN без подключенного монитора?

Добрый день!
Есть некоторое приложение. У него нет никакого API ,а необходимо было наладить автоматическую работу с ним.
Поэтому написано другое приложение, которое посредством WinAPI взаимодействует с ним.
Посылает ему сообщения типа WM_LBUTTONDOWN через PostMessage:
PostMessage(window, (uint)windowMessages.WM_LBUTTONDOWN, button, clickPos);
Все работает стабильно и хорошо.
Но появилась необходимость запускать это все дело на арендованном сервере. Монитора никакого нет и соотв-но взаимодействие нарушается. Как я понял это нормально. Нет монитора -> нет размера окна \ нет фокуса у окна -> посылаемые координаты\сообщение некорректны
Но возникает вопрос как решить мою проблему ? Нужно или как то на уровне WinAPI решить проблему или эмулировать монитор.
Как костыль пришлось пока что держать открытой RDP сессию. Тогда все работает стандартно.
Есть какое-то решение?
Заранее спасибо.
  • Вопрос задан
  • 130 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
@CHolfield
дело не в мониторе, а в наличии\отсутствии сессии пользователя. Нет сессии - нет сеанса GUI, нет окон приложения, некуда тыкать. Нужно прописать автоматический логин нужного юзера при старте винды:
www.windowsfaq.ru/content/view/895/120
Ответ написан
@rPman
Если вы подключаетесь к серверу по rdp то после отключения сессия блокируется и GUI не работает

Вам необходимо либо держать сессию rdp открытой либо подключиться к консоли например vnc/teamviewer (в датацентре провайдеры вам это не дадут)

p.s. я решал проблему запуском десктопной windows в виртуалке, заодно оно работало на linux но с заметным понижением скорости
Ответ написан
nikitao
@nikitao Автор вопроса
Получилось пока что вот так решить проблему:
Если зайти через VNC ( использую RealVNC Server\Client) , то после закрытия VNC клиента не происходит дисконнект Windows пользователя и все продолжает работать.
Во многих случаях этого достаточно.
Но мне необходима работа нескольких сессий одновременно. Поэтому на одной учетке ( на которую происходит вход через VNC) открываются RDP сессии на те учетки с которых уже идет реальная работа.
Вот такой ужас, но работает и на том спасибо%)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы