Нажать на кнопку в другом приложении

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
dsabitov
Посетитель
Сообщения: 44
Зарегистрирован: 02 Апрель 2011, 12:30

Нажать на кнопку в другом приложении

Сообщение dsabitov »

02.04.2011
Добрый день.
Задача возникла простая вроде (по постановке), но в реализации все оказалось сложней...
Итак, нужно из приложения Clarion управлять элементами окна другой запущенной программы.
То есть обратиться к какому-то control-у в окне другой программы и послать туда событие - POST(Event:Accepted).

Попутные вопросы:
1. Как получить список всех открытых в данный момент на компьютере (задачу не усложняем - только активный десктоп текущего пользователя) окон (интересуют параметры: имя окна, его идентификатор или что-то, что позволит потом обращаться к этому окну)?
2. Как послать событие в выбранное открытое окно?
3. Как, черт побери, ее нажать - эту кнопку из другого окна????

Сам нахожусь в процессе поиска решения.. Буду рад, если кто-то поможет мыслями и опытом.
Всем заранее спасибо!

03.04.2011
Дело немного продвинулось. Для тех, кому интересно, прилагаю исходники (я, во всяком случае, попытался их приложить - если не видно и интересно посмотреть: напишите). Теперь я умею получать список окон (их хэндлов hwnd и имен), открытых в данный момент. Программа по завершению создает текстовый файл 'Output.q' со списком всех открытых на момент выполнения окон.
В продолжение темы: следующие "мега" :)))) задачи:
1. Научиться считывать из выбранного окна (по заданному хэндлу hwnd) список имеющихся в окне элементов (номер и тип - допустим поле для ввода видимо с подобным же аналогом хэндла, кнопка - хэндл, лист - хэндл ).
2. Вообще говоря, опциональный пункт для моей личной задачи: - научиться записывать значения в поля для ввода.
3. Научиться посылать события выбранному элементу (по хэндл поля в текущем окне) - в идеале - код нажатой клавиши (что будет соответствовать нек-м event-ам clarion - accepted, selected...).

Допускаю, что формулировки к поставленным сегодня задачам не корректны, но это дело времени и некоторых усилий, которые, я надеюсь, принесут успех в решении моей задачи.

Кстати, как мне видится, после разрешения вопросов, озвученных сегодня, становится возможным из приложения Clarion генерить сообщения в говорилки (ICQ, mail.ru агент и т.д.) и отсылать их в автомате. Ну.. , скажем вы вышли по делам, не хотите никого обидеть, и отвечаете всем (при изменении поля в соответствующем окне) написавшим фразой: к сожалению, меня нет на месте, скоро появлюсь и обязательно отвечу. Это был бы некий автоответчик. Согласен, подобного софта и так полно, но этот - написан Вами и на Clarion :)))). А если добавить немного фантазии - Вы и не подумаете пользоваться сторонним софтом.

Продолжаю ожидать помощи от тех, кто уже решил посталенные вопросы и готов поделиться их решением.
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: Нажать на кнопку в другом приложении

Сообщение Admin »

Обычно в таких случаях использую поиск в Гугле. К примеру набираем "нажать кнопку в другой программе Delphi"
Ссылок в ответ масса. Delhpi добавил так как там похожие вещи на голом WinAPI делаются.
Смотрим ссылки и разбираемся.
Вот про нажатия http://programmersforum.ru/showthread.php?p=473754
Вот про вывод текста http://www.cyberforum.ru/delphi-beginne ... 14386.html
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ал
✯ Ветеран ✯
Сообщения: 1039
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Re: Нажать на кнопку в другом приложении

Сообщение Ал »

ну и литература по последней ссылке http://forum.clarionlife.net/phpbb/view ... =12&t=2604
Ответить