Я пытаюсь использовать keybd_event () для нажатия определенных клавиш в приложении удаленного рабочего стола. Для простейшего теста я просто открываю блокнот в удаленном сеансе и выполняю вызов keybd_event () на локальном компьютере, а текущий пользователь фокусируется на блокноте.
К сожалению, похоже, что он не отправляет какие-либо данные на удаленный рабочий стол.
Если я запускаю приложение на локальном компьютере с локальным экземпляром блокнота в фокусе, оно печатает именно то, что я хочу напечатать без проблем.
У кого-нибудь есть идеи, почему это не сработает? Очевидно, я могу ввести вручную в сеансе удаленного рабочего стола.
Спасибо
Любая программа удаленного рабочего стола является шлюзом для подключения к удаленной системе, она является посредником. Отправка любого сообщения клавиатуры в эту программу любым способом (например, keybd_event
, SendInput
, PostMessage
и т. д.) будут молча поглощены программой RDP. Он просто не потребляет его и не передает его подключенному ресурсу.
Скорее всего (в чем я не уверен), программа может иметь документированные API для отправки ей некоторых сообщений, таких как закрытый сеанс, открытый сеанс или сеанс отправки сообщения в подключенное устройство. Используя данный API (функция, COM-интерфейсы), вы может отправить некоторый вклад в подключенный ресурс.