Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Отправка скриншота на email

Ответить
Настройки темы
CMD/BAT - [решено] Отправка скриншота на email

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: andrew_gurylyov@vk
Дата: 22-02-2012
Здравствуйте. Помогите, пожалуйста, написать батник. Не обессудьте, если задача слишком сложна или же проста, я батниками пока умею лишь копировать ><

Суть задачи:

Есть папка со скриншотами, например, C:\Dropbox\Public\img\
В ней время от времени (после нажатия PrintScreen) появляются картинки. Их имена имеют одинаковое начало, например, Capture и одинаковый формат: .JPEG. Единственное их отличие - нумерация. Соответственно, файлы выглядят следующим образом: Capture1.JPEG, Capture2.JPEG, Capture3.JPEG и т.д. При появлении новых файлов должен запускаться батник, лежащий в любом месте, например, в папке с этими файлами. Его автоматически запустит программа (Auto Screenshot Maker), которая делает скриншоты после того, как сохранит скриншот. В самом батнике адрес к папке должен преобразовываться из C:\Dropbox\Public\img\ в http://dl.dropbox.com/u/1033383/img/
Дальше самое сложное, вроде бы, что я вообще не понимаю, как сделать: батник должен определять последний файл в папке (то есть файл с наибольшим числом после Capture), добавлять его к адресу, чтобы получилось, например, http://dl.dropbox.com/u/1033383/img/Capture1.JPEG и отправлять его на почтовый ящик, например, example@example.com
Желательно, чтоб функционал этого батника был в .exe, а-то я что-то сомневаюсь, что программа запустит иные форматы.
Помогите, пожалуйста, я очень нуждаюсь в вашей помощи! Заранее безмерно благодарен!

Отправлено: 13:22, 22-02-2012

 

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


есть жаббер квипа. avenger-inkognito@qip.ru подойдёт?

Отправлено: 20:08, 22-02-2012 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


andrew_gurylyov@vk, да, подойдет. Вам только что приходило сообщение с текстом "Тест"? Если да, то сейчас реализую скрипт, который будет слать уведомления.

Отправлено: 20:33, 22-02-2012 | #12


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Не приходило. Вероятно оттого, что был включен анти-спам. Отключил, можно попробовать снова.

Отправлено: 20:36, 22-02-2012 | #13


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Попробовал, а сейчас приходило? У меня на тестовый qip-аккаунт отправляет.

Отправлено: 20:40, 22-02-2012 | #14


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Нет, ничего нет. В настройках квипа всё разрешил, антиспам выключил.

jabber.bot! пришло)

Отправлено: 20:40, 22-02-2012 | #15


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Попробуйте в контакты добавить jabber.bot@qip.ru
Только что еще раз попробовал вам отправить, на мой тестовый jid (только что завел на квипе) приходит, но тут может быть проблема ещё в разных клиентах, у меня Psi+, и в опциях отключено "не принимать сообщения от неавторизованных контактов"

Отправлено: 20:44, 22-02-2012 | #16


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Чуть выше написал. Пришло)

Тема: Уведомление

Проверка связи

Отправлено: 20:45, 22-02-2012 | #17


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Последняя проверка, только что вам ссылка приходила?

Отправлено: 21:03, 22-02-2012 | #18


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Приходила. Файла, правда, по тому адресу не было, но ссылка пришла.

Отправлено: 21:03, 22-02-2012 | #19


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Тогда держите готовый скрипт. Файла естественно не было, я имитировал его наличие. Сообщения в джаббер отправляются с помощью вот этого ruby-скрипта, спасибо его автору.
Скачать уже скомпилированный скрипт вместе с интерпретатором ruby можно отсюда http://rghost.ru/36655943
Когда я тестировал отправку, иногда бывало, зависало секунд на 30. С нормальными серверами, не qip.ru обычно такого не происходит.
Вот скрипт, если захотите сами скомилировать:
Скрипт

@Echo Off
SetLocal EnableDelayedExpansion
:: Прописываемся в path до конца сессии
Echo %Path%|Find "%CD%\xmpp">nul||Set Path=%Path%;%CD%\xmpp
:: Читаем настройки из файла
Set CfgFile=settings.cfg
Call :ReadKeyValue
:: Создаем профиль со значениями по умолчанию для бота
Call :WriteAccountData
For /F "delims=" %%F In ('Dir "%Dropbox.Path%\Capture*.jpeg" /A:-D /B /O:-D') Do (
Echo Sending message...
xmpp_sender -b "http://dl.dropbox.com/u/%Dropbox.ID%/img/%%F">nul
Exit
)
pause


rem Запись данных в профиль бота
:WriteAccountData
>"%Jabber.Config%" (
Echo xmpp_sender:
Echo server: %Jabber.Server%
Echo login: %Jabber.SenderLogin%
Echo password: %Jabber.SenderPswd%
Echo to: %Jabber.Receiver%
Echo subject: %Jabber.MessageSubj%
Echo body: %Jabber.MessageBody%
)
Exit /B

rem ====== Функции для работы с файлами формата key=value
rem Inquisitor, 2011
:ReadKeyValue
:: Читает значения из файла, назначает переменные и подготавливает данные для :WriteKeyValue
If Not Exist %CfgFile% (Exit 1)
Set i=0
For /F "usebackq tokens=1,2* delims==" %%A In ("%CfgFile%") Do (
Set /A i+=1
Set %%A=%%B
Set CfgKey!i!=%%A
Set CfgStrings=!i!
)
Exit /B

:WriteKeyValue
:: Записывает данные обратно в файл, соответственно, с внесенными изменениями
If Exist "%CfgFile%" (Del "%CfgFile%")
For /L %%S In (1,1,%CfgStrings%) Do (
Call :SingleLine "!CfgKey%%S!"
)
Exit /B
:SingleLine
If "%~1"=="" Exit /B
If Not "!%~1!"=="" (Echo %~1=!%~1!>>"%CfgFile%") Else (Echo %~1>>"%CfgFile%")
Exit /B

:AddEntry
:: Добавляет значение (пустое), которое позже можно назначить через Set и записать через WriteKeyValue
:: Пример - Call :AddEntry "# тестовый комментарий", Call :AddEntry "Key123",
If Not "%~1"=="" (
Set /A CfgStrings+=1
Set CfgKey!CfgStrings!=%~1
)
Exit /B

:RemoveEntry
:: Удаляет точно или частично совпавшие ключи, регистрозависимо, используется Find
:: Пример - Call :RemoveEntry "TestKey"
If Not "%~1"=="" (
For /L %%L In (1,1,%CfgStrings%) Do (
Echo !CfgKey%%S!|Find "%~1">nul&&Set CfgKey%%L=
)
)
Exit /B
rem ===============================

Файл настроек

[Jabber]
# Сервер. Отправитель и получатель должны находится на том же сервере.
Jabber.Server=qip.ru
# Логин бота
Jabber.SenderLogin=jabber.bot
# Пароль бота
Jabber.SenderPswd=qwerty123
# Получатель
Jabber.Receiver=avenger-inkognito
# Тема по умолчанию - используется, если не задано
Jabber.MessageSubj=Уведомление
# Текст по умолчанию - используется, если не задано
Jabber.MessageBody=test
# Файл, из которого бот читает значения по умолчанию
Jabber.Config=xmpp\xmpp_sender.yml

[Dropbox]
# Путь к директории со скриншотами
Dropbox.Path=C:\Dropbox\Public\img
# ID пользователя
Dropbox.ID=1011483

Оба в кодировке UTF-8, для поддержки кириллицы в джаббере.

Отправлено: 21:10, 22-02-2012 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Отправка скриншота на email

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - cmd определение ip и отправка на email exekill Скриптовые языки администрирования Windows 1 15-01-2012 17:40
V. 2010 - [решено] Отправка email средствами sql server 2005 через exchange VladDV Microsoft Exchange Server 2 12-08-2011 12:58
Разное - Программа для скриншота с веб-камеры DIKPro Microsoft Windows 7 22 05-08-2011 03:53
[решено] Отправка Email с авторизацией на сервере средствами AutoIt WIFI AutoIt 2 26-03-2010 15:06
Создание скриншота morgan1991 AutoIt 0 19-02-2010 22:43




 
Переход