![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Prospekt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.5.2012 Репутация: нет Всего: 1 |
Задача для меня очень необычная, подозреваю, что решения может и не быть.
Есть программа, написаная не мной, скорее всего на Delphi (или CBuilder). Мне требуется сделать надстройку над этой программой, не перекомпилируя её. Что должна делать программа: 1) считывать данный из Label, расположение на экране которых известно и постоянно. 2) отправлять сообщения нажатия кнопок (расположение которых тоже известно). Как подойти к этой задаче? Просто её интерфейс очень неудобен, данные представлены в том виде, в котором их неудобно обрабатывать, плюс необходимо постоянно иметь несколько сложных условий (критериев) построенных на этих даных. Да и ко всему ещё есть отрезки времени, когда от пользователя требуется примитивная реакция (если больше жмем на одну кнопку, если меньше на другую), так что хотелось бы построить некий автопилот для таких отрезков. Почему я думаю, что эта задача может иметь решение? Есть такая программа как героекополка (для Heroes 3), которая автоматичеки загружает сейф, покупает в таверне героя, и если новый герой (на месте купленного) не тот, который нужен, происходит опять загрузка сейфа и т.д. |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Для этого вам нужно отправить "другой" програмке соответствующее сообщение используя функцию SendMessage MSDN.
Координаты мыши узнать легко, а вот нажатие левой кнопки мыши выполняется вот так.
WinAPI одинаково на всех языках, так что примеры можете смотреть на любом языке, суть от этого не меняется. Главное понимать что искать. Удачи. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
Vas |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 4 Всего: 28 |
Нафига ему координаты мыши? Надо искать окно, например, по заголовку, что-то из раздела FindWindow, а потом, перебирая дочерние окна, находить их Handle и слать уже сообщение по SendMessage Добавлено через 8 минут и 37 секунд Вот когда-то в молодости писал, запуск приложения в режиме SW_HIDE, поиск окна по заголовку, потом поиск дочерних окон, если их класс (TEdit, запускаемые проги были писаны на дельфях, но не мной) то запоминаем и уже им шлем нужные параметры ![]() P.S. за код не ругать, давно это было ![]()
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
||||
|
|||||
Prospekt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.5.2012 Репутация: нет Всего: 1 |
Спасибо за ответы.
Я сделал так: 1) Сначало вывел список всех окон, и среди них нашел нужное окно типа MainForm. 2) Путем рекурентного поиска выводил все подокна для даного окна. Таким образом вывел дерево графических объектов для начального окна. Но тут загвоздка, FindWindowEx() принципиально не хочет находить Label, а именно они мне очень нужны. Почитал немного, оказалось, что Label - это типа как и не окно (вобщем Гейтс и здесь кинул), и таким образом получить handle не получится. И что делать? Должен же быть какой-то способ добраться до этих Label. Как это сделать своими силами разобраться не могу. Пардон, это уже другая тема, поэтому создам тему в соотвествующей ветке форума. Это сообщение отредактировал(а) Prospekt - 23.12.2012, 13:23 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |