IBM Personal Communications для Windows предлагает функцию DDE «Получить ввод с помощью мыши», которая возвращает данные о положении 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). Румба может предложить что-то очень похожее.
И еще один возможный подход — сместить взаимодействие с этими приложениями в сторону API и в пользу совершенно новых, более портативных пользовательских интерфейсов, обычно веб-интерфейсов и мобильных интерфейсов. Есть множество способов сделать это. Если вам все еще нужна автоматизация на основе терминала (3270) — может быть, потому, что исходный код приложения утерян, или по иным причинам очень сложно создать для него полезные API? - есть множество способов перенести эту автоматизацию на серверную часть. Например, CICS Transaction Server для z/OS поставляется с несколькими технологиями автоматизации терминалов в качестве стандартных функций. Найдите ссылки на «мост 3270» и «FEPI» в Центре знаний IBM для CICS, чтобы изучить этот диапазон вариантов.
person
Timothy Sipples
schedule
15.10.2019