IBM Personal Communications для Windows предлагает функцию DDE "Get Mouse Input", которая возвращает данные о положении PS (строка, столбец), когда пользователь щелкает мышью. Есть еще одна функция DDE, Set Mouse Intercept Condition, для определения того, какие щелчки мыши (левую, правую, среднюю, одинарную, двойную и т. Д.) Следует перехватывать. Я не вижу прямого способа захвата простых движений мыши с помощью функций DDE, но это может быть возможно (если вы очень осторожны в программировании Windows), если вы генерируете симулированные, ограниченные по скорости щелчки мыши и только когда указатель мышиперемещается в окне эмулятора.
Возможно, Rumba предлагает аналогичные функции? Очевидно, что в Rumba есть некоторые функции DDE, но я не нашел ссылки на функции DDE для Rumba, общедоступной в Интернете.
Одно возможное предостережение заключается в том, что функции DDE являются 32-разрядными (и 16-разрядные функции также все еще существуют). поддерживается, поскольку в 32-битной Windows все еще работает 16-битный код). Вы можете использовать 32-битные функции, если вы занимаетесь программированием на 64-битной Windows, но, конечно, вам нужно знать, как это сделать, если вы этого еще не сделали. Еще одно предостережение: вам, вероятно, следует протестировать все, что вы делаете, на предмет доступности для пользователя, например, с помощью инструментов для чтения с экрана, которые помогают пользователям с нарушениями зрения.
Другой возможный подход - встроить весь эмулятор в свою собственную "оболочку". "приложение, поскольку это может дать вам больше возможностей программирования и контроля. IBM предлагает как встраивание в стиле ActiveX / OLE, так и встраивание в стиле Java (их «библиотеки классов доступа к хосту», также называемые HACL). Rumba может предложить что-то похожее.
И еще один возможный подход состоит в том, чтобы перенести взаимодействие с этими приложениями на API-интерфейсы и отдать предпочтение новым, более портативным пользовательским интерфейсам, обычно веб-интерфейсам и мобильным интерфейсам. Есть множество способов сделать это. Если вам все еще нужна автоматизация на основе терминала (3270) - возможно, из-за того, что исходный код приложения утерян или иначе сложно создать полезные API для него? - Есть множество способов перенести эту автоматизацию в бэкэнд. Например, CICS Transaction Server для z / OS поставляется с несколькими технологиями автоматизации терминала в качестве стандартных включенных функций. Ищите ссылки на «мост 3270» и «FEPI» в Центре знаний IBM для CICS, чтобы изучить этот диапазон вариантов.