2015-10-02 12 views
0

Я использую RemoteApp (~ RDP) для доступа к удаленному приложению, а затем я пытаюсь имитировать некоторые действия пользователя с помощью клавиатуры. Но удаленное приложение никак не реагирует на эту деятельность. То же симуляция на одном и том же приложении, работающем локально, отлично работает! Но когда я начинаю взаимодействовать с приложением удаленно, все терпит неудачу. Я пробовал:RDP-окно не реагирует на моделирование клавиатуры

  1. SendKeys.SendWait (строка)
  2. keybd_event (байт БВК, байт BSCAN, UINT dwFlags, UIntPtr dwExtraInfo)
  3. SendInput и библиотеки над ним InputSimulator (https://inputsimulator.codeplex.com/)

Ничего не стоит. Единственный успех заключается в том, что удаленное приложение реагирует на обратное пространство.

Обе машины - Win7 x64.

Есть ли у вас какие-либо предложения или положительные впечатления, как имитировать активность клавиатуры с помощью RDP-окон?

+0

Вы пробовали автоматизацию UI? – Ben

ответ

0

Я нашел следующее решение - используя AutoIt.

  1. Download AutoIt с официального сайта и установить его;
  2. Добавьте к Рецензии своего проекта библиотеку AutoItX3.Assembly.dll. Не следует путать с библиотеками и AutoItX3.dll AutoItX3_x64.dll, это необходимо;
  3. Добавить using AutoIt; в начало файла, который будет работать с клавиатурой;
  4. Для моделирования клавиатуры используйте статический метод AutoItX.Send(string);
  5. Исполняемый каталог программы должен содержать библиотеку AutoItX3.Assembly.dll, AutoItX3.dll и AutoItX3_x64.dll. Если вы точно знаете, что ваше приложение не будет запущено в 32-разрядных или 64-разрядных операционных системах, вы можете удалить одну из библиотек - AutoItX3.dll или AutoItX3_x64.dll соответственно.