Разработка программы автоматизирования действий в Windows

Страницы работы

4 страницы (Word-файл)

Содержание работы

Программа №1.                                                   Есипов С.В. УИТ-42

WinAS (Windows Auto Scripter)

В данный момент на рынке и в Интернете актуально большое количество автоматизирующих программ. К примеру, в больших пакетах есть встроенные языки программирования (как VB в Office, встроенный язык в 1С и т.д.). Также существуют различные планировщики заданий, выполняющие определенное действие (архивация, напоминание, отправка и т.д.). Еще один тип – менеджеры «горячих клавиш», программы управления раскладками и т.д. Главное всех их назначение – избавить пользователя от повторяющихся действий. Все эти программы хоть и очень полезны, работа становится более эффективна, время тратится только на описание того, что нужно сделать, к ним привыкаешь, но этими программами редко пользуются штатные пользователи. Основными причинами, по-моему, являются сложные настройки в менеджерах, знание нюансов языков программирования, безкомплексность этих программ (обычно в трее находятся множество различных однотипных программ, которые можно было бы свести в одну).

Таким образом, я задался целью сделать полноценную программу автоматизирования действий в Windows. Отличительный плюс – реализация эмуляции нажатий клавиш (часто «обычные» программы не имеют механизма автоматизации, приходится по 100 раз нажимать одно и то же) и реакция на закрытие/открытие приложений (обычно автоматизирующие действия происходят по времени или требованию, но чаще всего действие надо выполнять по завершении/началу работы с каким-то приложением). Конечно, кроме этих действий можно реализовать массу других.

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

В автоматизаторе есть события и действия, как реакция на события. Как вспомогательный инструмент, используется ограниченное число переменных (своего рода результат или параметр действия или события).

События:

·  Закрытие/открытие приложения

·  Запуск/завершение работы Windows

·  Нажатие «горячей клавиши» в системе

·  Выбор пункта «быстрого» меню автоматизатора

·  По прошествии определенного промежутка времени

·  В определенный момент времени

·  Изменение состояний файлов (изменение в каталогах) и т.д.

Действия:

·  Эмуляция нажатия клавиши на клавиатуре

·  Эмуляция действий над мышью (движение, клики)

·  Действия над файлами и каталогами (копирование и т.д.)

·  Запуск/ завершение приложений (или системы)

·  Действия над окнами:

А) выбор окна по заголовку, программе или выбор текущего окна для любых действий

Б) Исчезание/появление окна

В) Стандартные действия (сворачивание, разворачивание окна)

Г) сворачивание окна/программы в трей

Д) прозрачность

·  Вывод необходимого сообщения или вопроса на экран

·  Настройка или вывод «быстрого» меню

·  Запуск таймера

·  Работа с различными элементами и функциями Windows

·  Ведение лог-файла.

С набором таких возможностей, пользователь сможет составлять эффективную и удобную для него программу. К примеру:

1)можно указать событие «закрыть word» с действием копирование измененных файлов из папки «мои документы» в папку «bak». (резервное копирование)

2) событие «горячая клавиша» - действия а)ввод необходимого числа минут б)запуск таймера. Событие «по прошествии интервала времени» - действие вывод сообщения. (напоминалка, планировщик)

3) событие «горячая клавиша» - действие а) выбор окна б)эмуляция нажатия клавиш (автоматизация любой программы)

4) «горячая клавиша» - запуск перечня программ.

И т.д. Главный плюс – возможность предоставления полной свободы действия пользователю, который в любой момент может изменить написанный им скрипт по изменившимся обстоятельствам. Для простых пользователей можно также распространять уже готовые самонастраивающиеся скрипты для стандартных действий. Поскольку среди действий есть ведения лога, то можно использовать автоматизатор как следящую за событиями системы программу (программа-шпион). Ниже приведен кусок уже рабочего скрипта:

//здесь идут комментарии

log(0)=E:\WinAS\%Now(dd_mm_yyyy).txt                     //нулевой лог

log(1)=E:\1\%Now(dd_mm_yyyy).txt                   //первый лог

on close "WINWORD.EXE"                                            //событие запуска exe'шника

//запись в logStart.txt вместе с датой заданного формата

copy "E:\temp\WINWORD\*" "E:\%1\%now(hh-mm-ss)\" // now – это вставка текущего времени с заданным форматом

log(0) "запущен в %Now([dd-mm-yy] hh:nn:ss) ворд "

log(0) "%Now([dd-mm-yy] hh:nn:ss) %1"    // %1 – переменная-результат копирования

//msg " скопировано! %Now(c)"           //системное сообщение             

end

on close "winamp.exe"               //событие закрытие exe

run "C:\Program Files\Winamp\winamp.exe"                 //запуск программы или файла

log(1) "закрылся ворд (%1) "                            //запись в logClose.txt

key p(10)xp(50){alt}{f4}                //эмуляция нажатия клавиш (в данном сучае – нажимаем кнопку play, а  потом закрываем винамп через 5сек.)

end

on start "MSPVIEW.EXE"

key p(10){ru}{alt}av  // эмуляция сканирование нового документа при открытие офис-имейджинг

end

on press shift+1   //”горячая клавиша»

key p(10){f10}

end

Написание скрипта можно упростить (заменить) простым пошаговым мастером, позволяющим быстро указать, что надо пользователю.

Программа №2.

Graf-analyzer.

Построение и преобразование структурных схем. Обычно это занимает много времени, и возникают часто ошибки.

Я предлагаю написать программу, позволяющую:

1) Доступно и быстро изображать (рисовать) структурные схемы или графы (существуют программы представления схем, но они обычно либо дорогостоящие и нераспространенные, либо имеют мало настроек)

2) назначать каждому звену или ребру свой вес или передаточную функцию

3) автоматически(!) пошагово преобразовывать структурные схемы, находя общие передаточные функции.

Можно так же осуществить дальнейшее стандартное исследование передаточной функции на устойчивость системы, характеристики системы и т.д.

Имеется опыт в написании программ-СУБД, OLE-автоматизаций, Api-программирования, html, css, php, javascript. Не пробовал, но знаю, как делать сетевые (многоуровневые) СУБД.

Похожие материалы

Информация о работе