Немного автоматизации в Windows

Sep 02, 2011 11:18


Иногда надо отправить приложению какие-то нажатия на кнопки.
Примером может являться созданное письмо в Outlook через командную строку.

Напомню. Я хочу отправить письмо из командной строки. Это частенько надо для отправки в определенное время определенного файла или при его возникновении в определенной папке.

Создавать письмо через аутлук мы научились из командной строки.
outlook.exe /c ipm.note /a "C:\!\music.wav" /m vvv@nnn.ru
А как нам теперь отправить это письмо?
Мы получаем вот такое окно.




Теперь каким-то раком надо нажать кнопку "Отправить"
К счастью, в Windows существуют комбинации клавиш для выполнения определенных операций. В частности, в outlook-е комбинация Ctrl+Enter отправляет письмо. Нам остается как-то ее отправить нужному окну.

Для этого установим себе AutoIT

AutoIt 3.3.6.1

Программа для автоматизации часто выполняемых действий в ОС Windows. Утилита позволяет повторять нажатия клавиш клавиатуры, перемещение и клики мышкой, манипуляции с окнами приложений, работу с буфером обмена и другие действия пользователя. Например, с помощью этой программы можно производить установку однотипных приложений. Для выполнения автоматических действий AutoIt создает текстовый сценарий, который использует функции и операторы VBScript и BASIC, а также некоторых других языков программирования. После создания программой специального управляющего скрипта, его можно скомпилировать в исполняемый файл, который будет работать в любой операционной системе семейства Windows

AutoIt 3.3.6.1

Latest version: v3.3.6.1

Updated: 16th April, 2010

Вот тут можно ее взять. Download

Я взял и сваял простейший скрипт, мне нужно было всего-то - отправить сочетание клавиш нужному окну.

; Сделать активным окошко сообщения. У меня русская версия стоит, сообщение будет создаваться именно с таким заголовком.
WinActivate("Без имени - Сообщение (HTML)")

; Дожидаемся активации окна
WinWaitActive("Без имени - Сообщение (HTML)")

; Немного подождем
AutoItSetOption("SendKeyDelay", 400)

; Отправляем комбинацию клавиш Ctrl+Enter
Send("^{ENTER}")

Далее, для упрощения работы в командной строке, я компилирую скрипт в выполнимый модуль. теперь я могу без запуска AutoIT выполнять данную операцию.

В данном случае, я назвал скомпилированный скрипт sendmail.exe и поместил в каталог с командным файлом.

B вот какой батничек вышел для отправки файла по нужному адресу.

rem Создаем письмо с вложением
outlook.exe /c ipm.note /a "C:\!\music.wav" /m vvv@nnn.ru

rem Собственно запускаем скрипт, который мы только что скомпилировали в отдельную программу
sendmail.exe

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

PS: В IIS 6 появилась возможность отправлять почту без клиентов, с помощью VBScript и при наличии IIS с установленной службой SMTP.
Короче, очередная пушка размером со слона для охоты за мухами. Интересующимся - ссылка вот тут.

PS2: Собственно эту статейку я писал не столько для показа автоматизации почты, сколько для представления средства автоматизации на простейшем примере.

Компьютизмы, microsoft, Майкрософт, техническое, #Компьютер

Previous post Next post
Up