Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 813

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Есть один вопрос.
Имеются две программы не мною написанные,
после заполнения нужных полей в одной из них приходится копипастит данные из одной проги в другую.
Подскажите, как написать программу, которая будет брать данные из одного приложения, и вставлять его в другое в автоматическом режиме.
Заранее благодарен

Раджабов Амин Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Раджабов Амин (статус: Посетитель)
Вопрос отправлен: 13 августа 2008, 18:21
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Тебе помогут функции API для работы с окнами. Поля ввода являются также окнами. Поэтому надо только найти их хэндлы, а затем с ними можно будет творить всё, что угодно.
Для поиска хэндлов оконных элементов (полей ввода) понадобится определить имена их классов. Есть куча программ для этого, но лично я юзаю WindowFinder. Просто наводишь курсор на элемент и прога показывает его класс, текущий хэндл и текст, если он есть.
Далее, когда известен класс окна ввода, можно программно определить его хэндл. Для этого есть функции:


  • FindWindow() и/или EnumWindows() - для поиска родительского окна
  • EnumChildWindows() - для поиска дочерних оконных элементов
  • GetWindowText() - для извлечения текста из оконного элемента и др.

Статей по этой теме в инете бесконечное число. Сейчас мне гуглить некогда, нужно срочно закончить работу (я в отпуск ухожу), поэтому прицепляю к ответу тестовый проект, суть которого в поиске всех открытых окон Internet Explorer и извлечение/сохранение из них URL'ов из адресной строки в ListBox.
В том же архиве лежит и WindowFinder (кстати, с исходниками).
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 14 августа 2008, 08:35
Оценка за ответ: 5


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 13 декабря 2017, 21:40
Выполнено за 0.04 сек.
Рейтинг@Mail.ru