Автоматический обмен для Суперокон (полезный бот на Delphi)

Работая в программе по расчету светопрозрачных конструкций Суперокна, приходилось периодически (раз в неделю) делать обмен данными с дилерами (их более 300). Изначально был выбран вариант через дискету, т.е. через файлы. Хотя есть автоматический  вариант через сервер, но там есть свои недостатки и сейчас не об этом.

Процедура следующая: программа выгружает файл с настройками для определенного контрагента в нужную папку и далее идет рассылка на почту. Процесс рассылки файлов из папок по почте был давно автоматизирован. А вот выгрузка самого файла выглядела приблизительно так:

  • Открываем основное меню
  • Выбираем пункт меню Обмен данными
  • Вводим номер отдела
  • Вводим папку соответствующую по номеру этому отделу
  • Нажимаем кнопку ‘Обмен’
  • Ждем окончания выгрузки

 

И снова весь этот круг — и так  более 300 раз.

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

Писал на Delphi, по следующей схеме:

  • отлавливаю нужное окно;  SetForegroundWindow(findwindow(nil,’Суперокна 7′))
  • эмулируя нажатия клавиш, выходим в меню; keybd_event(VK_MENU, MapvirtualKey(VK_MENU, 0), 0, 0); 
  • таким же образом вводим нужные значения в поля ‘Путь к диску’ и ‘Отдел’;
  • также эмуляцией жмем ‘Enter’; keybd_event(VK_RETURN, MapvirtualKey(VK_RETURN, 0), 0, 0);
  • ждем пока файл не появится в нужной папке 

  • и повторяем круг с новым значением отдела.

В итоге программа готова — моё участие более не требуется и время обмена сократилось до 1 часа. Код и ссылка на скачивание архива с программой ниже (а также коды клавиш внутри кода):

 Скачать код программы botsw.pas

 Скачать архив всего проекта программы botforsw.zip (Delphi)  

Программа без красивостей и настроек(все в коде). Со временем добавлю опции  в виде списка отделов для обмена и возможно из нее же и сделаю рассылку почтой.

Автоматический обмен для Суперокон (полезный бот на Delphi)

Добавить комментарий

Ваш e-mail не будет опубликован.

Яндекс.Метрика