Обучение - Автоматизация блокнота

Этот урок показывает, как можно автоматизировать работу с Блокнотом (открыть его, напечатать что-нибудь и закрыть). Предполагается, что вы уже умеете создавать и запускать скрипты AutoIt, как было показано в уроке Привет мир!.


Создайте пустой скрипт, назовите его как-нибудь и откройте его для редактирования (используя Блокнот или SciTE, в зависимости от предпочтений).


Первое, что необходимо знать, это имя исполняемого файла Блокнота. Его имя: notepad.exe - это можно узнать, посмотрев свойства ярлыка Блокнот, находящегося в Меню Пуск. Чтобы запустить Блокнот, необходимо использовать функцию Run. Эта функция просто запускает указанный исполняемый файл, после чего скрипт продолжает свою работу.

Введите первую строку скрипта:

Run("notepad.exe")


Запустите скрипт - если всё сделано правильно - откроется новое окно Блокнота.

При автоматизации приложений AutoIt может проверить заголовок окна, чтобы знать с каким окном он должен работать. В блокноте заголовок окна очевидно Безымянный - Блокнот. AutoIt учитывает регистр букв при использовании заголовков окон, поэтому вы должны получить точный заголовок - лучший способ сделать это - использовать утилиту AutoIt v3 Window Info. Запустите AutoIt v3 Window Info из Меню Пуск \ AutoIt v3 \ AutoIt Window Info.

Используя курсор захвата утилиты AutoIt v3 Window Info перетащите его на открытое ранее окно блокнота, чтобы получить необходимую вам информацию о нём. Информация, в которой мы заинтересованы это заголовок окна.


Выделите текст заголовка в утилите AutoIt v3 Window Info и нажмите CTRL-C, чтобы скопировать его в буфер обмена. Далее мы можем вставить заголовок в наш скрипт не опасаясь орфографических ошибок.

После запуска копии Блокнота мы должны ожидать появление окна, пока оно не станет активным, прежде чем выслать в него какие либо нажатия клавиш. Мы можем ожидать окно с помощью функции WinWaitActive. Большинство оконных функций AutoIt'а требуют заголовок окна как параметр.

CTRL-V или Правка -> Вставить чтобы вставить название нашего окна из буфера обмена).

Введите следующее в качестве второй строки в скрипте (используйте CTRL-V или Правка -> Вставить, чтобы вставить заголовок нашего окна из буфера обмена).

Обратите внимание, что заголовок стандартного блокнота в "Windows XP" и "Windows 7" различные.

WinWaitActive("Безымянный - Блокнот") ; Win_XP
WinWaitActive("Безымянный — Блокнот") ; Win_7


После того, как мы уверены, что окно блокнота является видимым, мы хотим ввести некоторый текст. Это делается с помощью функции Send.

Добавьте эту строку в наш скрипт.

Send("Это некоторый текст.")


Весь скрипт будет выглядеть следующим образом:

Run("notepad.exe")
WinWaitActive("Безымянный - Блокнот") ; Win_XP
Send("Это некоторый текст.")


Закройте копию Блокнота, которую мы ранее открыли (вам нужно будет делать это каждый раз при запуске скрипта, иначе в конечном итоге вы будете иметь большое количество запущенных копий!). Запускаем скрипт.

Вы должны увидеть открытый блокнот, а затем текст в нём будет волшебно появляться!


Далее мы хотим закрыть "Блокнот", мы можем сделать это с помощью функции WinClose.

WinClose("Безымянный - Блокнот") ; Win_XP


Когда Блокнот пытается закрыться вы получите сообщение с предложением сохранить изменения. Используйте AutoIt v3 Window Info, для получения информацию о временном диалоговом окне, чтобы среагировать на него :)


Итак, добавляем строку, чтобы ожидать появление окна, пока оно не станет активным (мы также будем использовать текст окна, чтобы сделать функцию более надежной и отличить это новое окно от оригинального окна Блокнота):

WinWaitActive("Блокнот", "Сох&ранить")


Далее мы хотим автоматически нажать Alt-N, чтобы выбрать кнопку Нет / Не сохранять (подчеркнутые буквы в окнах обычно указывают на то, что вы можете использовать клавишу ALT и эту букву в качестве сочетания активирующего нажатие данной кнопки). В функции Send, чтобы эмулировать нажатие клавиши ALT мы используем ! (восклицательный знак).

Send("!n")


Наш готовый скрипт теперь выглядит следующим образом:

Run("notepad.exe")
WinWaitActive("Безымянный - Блокнот") ; Win_XP
Send("Это некоторый текст.")
WinClose("Безымянный - Блокнот") ; Win_XP
WinWaitActive("Блокнот", "Сох&ранить")
Send("!n")


Запустите скрипт, и вы увидите открытый блокнот, в нём появляется некоторый текст, затем блокнот закрывается! Вы должны использовать навыки, полученные на этом уроке для автоматизации многих других приложений.