Управление дочерним приложением (нажимание кнопок)

Петров12 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
18.03.2013

Моё предприятие покупало сервис по активации нашего продукта, поставщик услуг прекратил услуги сервера активаций, остался ручной вариант. Необходимо его автоматизировать.

Обязательное условие - среда разработки Delphi.

Временные условия - закончить надо в пределах недели.

Необходимо разработать два приложения:

Приложение 1. Запускает дочернее приложение (активируемый продукт). Читает содержание окна, текст (Другой вариант: Нажимает на нём кнопку и читает clipboard). Записывает прочитанное в базу (Обсуждается, но скорее всего MySQL, где то в Интернете). В цикле читает эту же базу (созданную запись) ожидая ответа. Прочитав ответ - заполняет окно в дочернем приложении. Нажимает в дочернем приложении кнопку.

Если были неполадки или Если всё хорошо - пишет в базу и письмо.

Прим: SMTP сервер и аккаунт для отсылки письма - будет предоставлен мной.

Приложение 2. Запускает дочернее приложение (генератор активирующего ключа). В цикле читает базу, ждёт новых записей. Получив текст из новой записи, вставляет его в окно в дочернее приложение. Пауза 1 сек. Читает второе окно в дочернее приложении. Записывает содержание в базу.

Минимальный Сервис: Просмотр базы.

Прим: дочерние приложения - исходников нет, написаны скорее всего на Delphi.

Главной "проблемой" будет - чтение текста в конкретных окнах (вероятно типа TMemo) дочернего приложения, визуально окна известны и постоянны.

Как вариант можно "нажимать кнопки" в дочернем приложении - хандлеры кнопок копируют/вставляют текст куда надо в/из буфера Виндоус.

Нажимания "мышкой" (перемещение указателя + иммитация нажатия мыши) - нежелательны, вообще хотелось бы по максимуму скрыть процесс от юзера.

"Искать" дочернее приложение не надо - оно будет запускаться всегда из разрабатываемого, то есть хандлер на него будет известен.

3. Надо продумать протокол общения через базу:

Создана запись, внесён текст

Прочитан текст

Вставлен ответ

Прочитан ответ

Выполнено действие с ответом.

- т.е. будет поле показывающее статус активирования.

Создавать БД из программы не надо, после обсуждения структуры я её создам руками и больше изменений не будет.

Если есть альтернативные предложения коммуникации между программами через Интернет - предложения приветствуются и рассматриваются (IP компьютеров неопределён, и компьютер у приложения 1 каждый раз другой).

Прим 2:

Идеальное и быстрое выполнение проекта = премия $20

Идеальное = дочерние программы запускаются свёрнутыми, юзер не видит действий. Обработка ошибок. Посылка (попытка) письма с ошибками или удачами.

- - - - -

По совету Романа я добавил файл, это ехе-шник, надо переименовать расширение. Это первая дочерняя программа, после старта выйдет окно активации - надо выбрать "ручной режим", нажать "далее", выйдет вторая форма - вот на ней и будет верхнее окно - из него надо прочитать текст, "передать" на активатор, получить ключ (текст) и вставить его во второе нижнее окно, сыммитироват нажатие "Готово". Всё. "Отписаться" о результатах.

Возможно подводный камень - эти "результаты". Если ключ принят - выйдет одна форма, Если не прринят - другая и текст с этой другой, тоже нужно выслать.