Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Программа AutoHotkey предоставляет поразительные возможности автоматизации "неуправляемых" приложений, которые не поддерживают нужные вам опции командной строки и/или OLE-автоматизацию. Например, с помощью Outlook Express можно подготовить к отправке письмо, используя URL наподобие такого:
mailto:aaa@bb.ru?subject=Тема сообщения&cc=bbb@cc.ru&bcc=cc@dd.ru&body=Тело%0a%0dсообщения
Если вы напечатаете этот URL в окне "Запуск программы" (меню "Пуск" - "Выполнить") и нажмёте ОК, в результате вы увидите в окне почтового клиента, заданного по умолчанию в вашей системе (предполагается, что это Outlook Express), письмо, готовое к отправке. Однако вставить файл (вложение) в это письмо с помощью URL крайне затруднительно. К сожалению, Outlook Express не поддерживает OLE-автоматизацию, поэтому "покомандовать" им с помощью скриптов не удастся. К ещё большему сожалению, Outlook Express не поддерживает и опций командной строки для таких целей. Однако, в такой ситуации можно воспользоваться скриптом для AutoHotkey (не спешите сразу запускать этот скрипт):
Run, mailto:aaa@bb.ru?subject=Тема сообщения&cc=bbb@cc.ru&bcc=cc@dd.ru&body=Тело`%0a`%0dсообщения WinWait, Тема сообщения PostMessage, 0x111, 40237, 0, , Тема сообщения WinWait Вставка ControlSetText, Edit1, c:\boot.ini, Вставка PostMessage, 0x111, 1, 0, , Вставка
Разберём построчно, как работает скрипт (всего 6 строк):
Таким образом, в результате работы скрипта мы получаем письмо, готовое к отправке, в которое уже вложен файл "c:\boot.ini".
Однако, этот скрипт совсем необязательно будет у вас работать, т.к. идентификаторы элементов управления в разных версиях Outlook Express теоретически могут не совпадать. Хуже того - скрипт может работать, но работать неправильно, производя непредсказуемые действия (посылая команды не тем пунктам меню, нажимая не на те кнопки и т.д.). Поэтому при написании подобных скриптов вам придётся самостоятельно определять идентификаторы элементов управления и классы окон для своих приложений (приложений, которые вы хотите автоматизировать). К счастью, сделать это не так уж и сложно.
Для того, чтобы найти идентификаторы нужных элементов управления, можно воспользоваться программой "Winspector", которая скачивается с сайта http://www.windows-spy.com/ (эта программа распространяется свободно).
Чтобы найти идентификатор ресурса нужной команды меню (для третьей строки вышеприведённого скрипта) и кнопки (для шестой строки того же скрипта), после установки Winspector проделайте следующее:
Чтобы найти класс окна поля ввода "Имя файла" (в вышеприведённом скрипте - "Edit1"), можно воспользоваться программой AU3_Spy.exe, которая поставляется вместе с AutoHotkey. Проделайте следующее:
Таким образом, вся необходимая информация для написания скрипта была получена. Естественно, вышеописанные методы получения информации могут быть использованы не только для автоматизации Outlook Express, но и для автоматизации других приложений. Подробную справку по синтаксису методов PostMessage, ControlSetText и других вы можете получить в справочном файле AutoHotkey.
Наверное, подготовить таким способом к отправке письмо в Outlook Express можно было бы и с использованием только стандартных методов Windows Script Host (методом SendKeys, т.е. эмулируя нажатия клавиш). Однако, случайная потеря фокуса у нужного окна при использовании эмуляции нажатий клавиш могла бы привести к большим неприятностям. Преимущество же вышеописанного метода автоматизации состоит в его относительной безопасности в этом плане.
Ещё один пример автоматизации: скрипт, приведённый ниже, позволяет приостанавливать/запускать воспроизведение музыки в Windows Media Player, а также "шагами" уменьшать/увеличивать громкость. Скрипт написан для Windows Media Player 9.00.00.3250 с помощью тех же приёмов, которые уже применялись выше. Нажатие Ctrl+Alt+Space устанавливает/снимает паузу, нажатие Ctrl+Alt+NumpadSub (минус) уменьшает громкость на "шаг", нажатие Ctrl+Alt+NumpadAdd (плюс) увеличивает громкость на "шаг". Будучи запущенным, скрипт ожидает нажатий указанных клавиш и никогда не завершает свою работу автоматически (постоянно находится в памяти компьютера). Удобство применения этого скрипта в том, что для регулировки громкости и установки/снятия паузы вам не нужно переключаться в Windows Media Player (делать его окно активным), а можно выполнять эти действия прямо "на ходу", работая в других приложениях.
^!Space:: ;ПАУЗА/ВОСПРОИЗВЕДЕНИЕ IfWinExist, Проигрыватель Windows Media { PostMessage, 0x111, 18808, 0, , Проигрыватель Windows Media return } ;==================================================================== ^!NumpadSub:: ;ТИШЕ IfWinExist, Проигрыватель Windows Media { PostMessage, 0x111, 18816, 0, , Проигрыватель Windows Media return } ;==================================================================== ^!NumpadAdd:: ;ГРОМЧЕ IfWinExist, Проигрыватель Windows Media { PostMessage, 0x111, 18815, 0, , Проигрыватель Windows Media return }
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.