| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Управление java приложеним из Delphi |
| Автор: JoKeR13 29.5.2012, 20:12 |
| Здравствуйте уважаемые, прошу вашей помощи в реализации следующей задачи: Есть оконное приложение написанное на java (.jar) (клиент для оракловой БД) В ручную запускаем приложение, логинимся, видим editы, кнопочки и не интересующие элементы интерфейса. Требуется из приложения delphi взаимодействовать, (ввел текст в первый эдит, во второй, нажал кнопочку) Я конечно реализовал это простейшим передвижением курсора кликами, и нажатиями контрл+в Но хотелось бы найти handlы всех необходимых элементов интерфейса а затем с ними соответсвенно взаимодействовать, так, чтобы все работало при свернутом окне java приложения. Все, что я смог на данный момент это получить handle главного окна (сворачивать, разворачивать) Пробовал spy++, но что-то мне подсказывает, что с java он не дружит. Я первый раз пишу подобное приложение, поэтому прошу сильно не пинать, а направить и подсказать! Спасибо! |
| Автор: JoKeR13 31.5.2012, 07:29 |
| Актуально :( |
| Автор: Snowy 31.5.2012, 13:57 |
| В java приложениях только одно окно и есть - главное. Все элементы внутри него нарисованы и не существуют для внешней системы, как самостоятельные элементы. Так что единственный способ управления - эмуляция нажатий клавиш и мыши. |
| Автор: JoKeR13 31.5.2012, 17:31 |
| Спасибо так и думал, но надеялся, что есть другие варианты решения проблемы! |
| Автор: JoKeR13 31.5.2012, 21:29 |
| А есть ли варианты взаимодействия через оперативную память? Замена значений эдитов хранящихся в памяти, особенно это былобы хорошо еслибы вдруг адрес в памяти был постоянным и его не приходилось бы программно каждый раз находить. Спасибо! |
| Автор: Amp 31.5.2012, 21:54 |
| Даже если бы ты узнал адрес. В Java работает сборщик мусора - в свете этого не ясно имеет ли смысл лезть в память процесса. Можно либо прочесть совершенно не то, либо записать не туда, уронив при этом JVM с приложением. А если вдруг звезды сошлись и ты удачно поменял значение, то контрол не узнает об этом до следующей перерисовки, а когда это произойдет - зависит уже от логики программы. |
| Автор: JoKeR13 1.6.2012, 11:07 |
| В общем оснований чтобы не попробовать не вижу, посему отпишусь о результатах, лучше так, чем кликать мышью! |
| Автор: JoKeR13 4.6.2012, 09:47 |
| Через память в принципе реализуемо, но возникают новые проблемы, посему решил все таки не изобретать велосипед :(( а так хотелось... |
| Автор: JoKeR13 4.6.2012, 10:52 |
| Можно считать решенным |