У вас не стоит Flash Player
Настройки
#57025 - Wed Jul 31 2013 05:58 PM Отправка в ICQ и запуск exe от уведомлений
Вася Offline
newbie

Registered: Fri Mar 30 2012
Записи: 47
Ещё до того как мне ответили/заметил это в теме про уведомления я написал "велосипед" для запуска exe от уведомлений TSLaba, потом добавил туда ICQ и уже не "велосипед".
Делюсь.
Описание:
Программа выступает в качестве локального SMTP-сервера, получает сообщение по SMTP (письмо, например от TSLaba) ищет строку (из файла Strings.txt регистр строк не важен) в теме и теле письма, при совпадении запускает указанную программу и передаёт ей в качестве параметра (как один параметр) запуска следующее: Время Тема ТелоПисьма
По умолчанию к телу письма применяется транслит, так если использовать передачу программе отсылающей смс можно уместить большинство сообщений TSLaba в одну sms.

Про строки для поиска, так как TSLab почему-то некоторые сообщения с ошибками и "Скрипт выполнен успешно" выдаёт с одним и тем же номером, пример:
10:10:02.24 100 Скрипт: 'script_sys10' Скрипт выполнен успешно за 3мс. (1000 баров, время 19.07.2013 10:05:00)
10:10:02.24 100 Скрипт: 'script_sys10' Пропущен сигнал 'SX.ML' выхода из позиции для заявки открытия номер 2175008923. Требуется вмешательство через Менеджер Команд.
Приходится получать не нужные номера "100 Скрипт выполнен успешно" с тем что бы не пропустить "100 Требуется вмешательство через Менеджер Команд"
Почему тут одинаковые номера сообщений мне неведомо.
Если добавить строку "Требуется", а не ставить номер 100 в Менеджер Уведомлений - E-mail Фильтры - Подстрока то вообще перестают идти сообщения. Видать пропускает в таком случае только с этим словом.

В приложенном архиве имеются две картинки по примерной настройке уведомлений в TSLab + Программа + ini для настройки + Strings.txt (таким пользуюсь).

Далее.
Этот SMTP не требует авторизации и пустит с любыми данными, но он никуда не пересылает письмо (молча проглотит), а делает что-то при совпадении искомых строк с пришедшим текстом:
1 Запуск exe-файла c параметром
и/или
2 Шлёт сообщение в ICQ.

Без спец. параметра к SMTP-серверу можно подключаться только с частных (локальных) IP

Письма не копируются в temp-файлы на винте, вся работа в оперативе, так что со своей стороны SMTP-сервер работает максимально быстро.

Заметил под Win7 странное поведение при отправке на localhost, сначало было подумал на TSLab, но оказалось не он виноват, из почтовой программы такие же тормоза, а под XP всё в порядке, тогда выключил IPv6 под Win7 и стало нормально:
Если сообщения будут отправляться за >=4 сек. надо сделать следующее (может достаточно чего-то одного, но я проделал и то и то):
1 Снять галки IPv6 из свойств сетевых адаптеров
2 Отключение IPv6 с пункта 5 http://www.winblog.ru/winvista/1147766497-18080901.html
После перезагрузки вступит в силу.

У меня отсылаются сообщения от 4-х скриптов на пятиминутках, и последнее соединение не рвётся сразу, а висит минуту-полторы (при этом письмо уже отправленно) это особенность TSLaba (?) ни на что не влияющая.

Параметры в ini-файле (писать туда без кавычек):
ExePath путь к запускаемой программе, например:
ExePath=C:\Program Files\proga.exe

AddParam параметры, если нужны, которые пойдут вместе с сообщением к запускаемой программе
При наличии других параметров в строке должен быть пробел и один символ двойных кавычек в англ. раскладке, пара кавычке добавляется после тела письма, кавычка здесь нужна для того, чтобы имелась возможность вставить параметр для другой программы в само сообщение.
Примеры, передаём вместе с сообщением параметр sms:
AddParam=from:Program "sms:
или
AddParam=-show "
или
AddParam="
Если других параметров нет, тогда одна двойная кавычка может быть без пробела перед ней.

NewLn символы новой строки для передачи exe-файлу, для sms нужно %0A для других программ может пригодится \r\n или \n, параметр NewLn даёт возможность это настроить
NewLn=%0A

Если включена ICQ то сообщение идёт туда в оригинальном виде (флажок транслита не важен).
Для работы нужно два UINa, один основной куда пойдут сообщения, второй можно зарегать на сайте новый и только от него нужен пароль. Так же надо провести работы по добавлению в контакт-лист первого ко второму и второго к первому, чтоб сообщения без проблем шли в обе стороны.

В ini файле есть три параметра для настроки:
CurrUIN - текущий uin, программа "сидит" под ним.
(На днях узнал что мылору агент и ICQ могут обмениваться сообщениями, так вот, тут получатель должен быть в виде цифр, а у Магента e-mail адреса, так что слать из программы через ICQ в mail агент не получится)
CrrPswd - пароль к CurrUIN.
TargetUIN - целевой uin, ТОЛЬКО ТУДА идут уведомления и только с него возможно управление (отключается параметром запуска).

Команды от TargetUIN, на которые отреагирует программа (регистр не важен, вывод от любой из команд пойдёт как сообщение в ICQ):

help или Помощь -> Показать справку
Time или Время -> Показать время на сервере
Date или Дата -> Показать дату на сервере
Version или Версия -> Показать версию программы
UpTime или ВремяРаботы -> Время работы программы и Время запуска программы
admin или админ -> Программа запущена от пользователя с админскими правами (да/нет)
CheckTSLab или ПроверкаТСЛаб -> Проверка главного окна TSLab на зависание
Ram или ОЗУ -> Вывод загруженности оперативной памяти
Processor или Процессор или Проц -> Вывод загруженности процессора
SaveLog или Лог -> Сохранить лог программы немедленно
Processes или Процессы -> Получить запущенные процессы
Process explorer или Процесс название -> Найти процесс среди запущенных
ping address -> Выполнение пинга как обычно
tracert address -> Выполнение трейсерт как обычно
netstat -> Выполнение нетстат (дольше, с именами)
netstat -n -> Выполнение нетстат с параметром -n (быстро, с номерами)
Net или Сеть -> Вывод сетевых соединений, иной способ
Strings или Строки -> Показать какие строки ищем (из Strings.txt)
IP или АйПи -> Показать внешний IP сервера (запрос на checkip.dyndns.org)
InternalIP или ВнутрАйПи -> Показать внутр. IP сервера
MemTSLab или ПамТСЛаб -> Получить объём занятой TSLab памяти
Restart TSLab или ТСЛабПерезапуск
Test или Тест -> Проверка связи, вернёт слово Тест и номер с Ok
Stat или Стат -> Статистика работы
11 -> Повтор последней набранной команды, быстрый вызов


Подробней на некоторых командах остановлюсь:

Время и Дата чтоб убедиться - на сервере точное время.

Проверка admin если будет добавлен функционал требующий админских прав, к примеру смена маршрута, эта штука пригодится.

CheckTSLab проверка главного окна на зависание, когда Windows добавляет к заголовку программы (не отвечает) проверка покажет это дело. Понятно, что это не значит будто программа мёртво висит, но уже можно делать выводы, что TSLab не отвечает и через время повторить запрос, далее по ситуации.

Процесс название, к примеру, у меня программа меняющая маршруты запускается раз 8-9 из 10 тут можно это проконтроливать. Введя Процесс route (слово "route" есть в названии exe).
Click to reveal..
Заодно спрошу кто чем пользуется для запуска под Win7 программ из автозагрузки с правами админа? Для проги меняющей маршруты нужны админ права, сам пользуюсь Elevated Shortcut 2.0.0.1 но как написал выше, нужная программа иногда не стартует.


Сетевой вывод для контроля, по внутр. ip можно понять если вдруг отключилось какое-то сетевое устройство, у меня их два на каждую сетевуху.

MemTSLab если TSLabик не перезапускать несколько дней он выжирает всё больше оперативы, тут можно посмотреть сколько им съедено на данный момент.

Restart TSLab команда говорит сама за себя, сделано потому как читал что бывает виснет TSLab, правда у меня не зависал, но может пригодится. Работает так: ищем процесс TSLabApp.exe получаем путь к файлу на диске, принудительно гасим процесс, через 10 сек. запускаем его вновь.
У команды Restart TSLab есть подтверждение - от случайного набора. Если среди запущенных процессов нет TSLabApp.exe, то команда ничего не сделает так как не будет пути.


Attachments
SMTPToProgram.rar (100 downloads)


Наверх
#57029 - Wed Jul 31 2013 10:48 PM Re: Отправка в ICQ и запуск exe от уведомлений [Re: Вася]
uuzzeerr Offline
veteran

Registered: Thu Sep 29 2011
Записи: 1446
тестирование проводил?

Наверх
#57030 - Wed Jul 31 2013 11:41 PM Re: Отправка в ICQ и запуск exe от уведомлений [Re: uuzzeerr]
Вася Offline
newbie

Registered: Fri Mar 30 2012
Записи: 47
Originally Posted By: uuzzeerr
тестирование проводил?


Здрасти. Только написал и сразу же выложил smile

Полторы недели назад, на выходных, добавил ICQ, с тех пор в работе, кое-что добавлялось/исправлялось. А на прошедших выходных вынес UINы в ini чтоб не тольо я мог пользоваться.
Сейчас смотрю больше на TSLab чтоб он меньше слал не нужных сообщений, надо будет его фильтр покрутить, так как в программе, похоже, есть всё что мне нужно на данный момент.

Дополню, первое сообщение темы.
Если связь с ICQ сервером пропала, а сообщения от TSLaba идут, то они складываются в буфер и как только программа к ICQ серверу подключится она всё отошлёт (тестил на паре сотен байт текста). Как будет с толпой сообщений надо смотреть, хотя где-то вычитал что ICQ принимает 7 КБ за раз.
Вся статусная строка отдана под ICQ, справа: "Уш" это "ушедшие" отправленные сообщения, а "Жд" это "ждущие" - кол-во байт в буфере для отправки как только связь появится.
Внеший вид:


Attachments
внешнийвид.png (232 downloads)


Наверх
#57034 - Thu Aug 01 2013 09:51 AM Re: Отправка в ICQ и запуск exe от уведомлений [Re: Вася]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
shocked
_________________________
__


Наверх
#57035 - Thu Aug 01 2013 10:28 AM Re: Отправка в ICQ и запуск exe от уведомлений [Re: ra81]
uuzzeerr Offline
veteran

Registered: Thu Sep 29 2011
Записи: 1446
на досуге по пробую, я прстым gmail.ru(не путать с gmail.com) пользуюсь.

Наверх


Moderator:  ViL, sar