|
Вопрос # 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
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|