Может пригодится, например, для управления сервером, доступ к которому ограничен (находится во внутренней сети компании). Не судите строго, т. к. это скорее прототип, первая версия.
Скачать программу можно здесь.
В архиве программы находятся несколько файлов: сама программа (SMSRC.exe), файл установок (options.ini), примеры готовых скриптов (папка scripts).
Железо
Должно работать с любым GSM модемом, либо сотовым телефоном, который может быть подключен в режиме GSM модема. Для определения номера порта, на котором «висит» модем, необходимо зайти в панель управления, открыть панель Телефон и модем на закладке Модемы в столбце Подключен к посмотреть номер порта.
Настройка и запуск
Перед запуском необходимо изменить файл установок (указать порт, как минимум прописать свои номера), убедиться, что на компьютере не запущено других программ, работающих с GSM модемом.
Для установки программы в качестве службы необходимо запустить ее с ключем -install. Для удаления из служб -uninstall. Для запуска без добавления в системные службы -debug (окна при запуске не создаст, для останова придется «убивать» через список процессов).
Файл установок представляет из себя ini файл в котором задаются параметры подключения к устройству и сценарии обработки сообщений.
[Settings]
; Номер порта, на котором висит модем
port = com8
rate = 115200
; Интервал проверки в миллисекундах
timeout = 5000
Далее следуют сценарии. Рассмотрим один из них для примера.
; В квадратных скобках текст пришедшего сообщения
[123]
; Путь к скрипту
script = scripts\cpuLoad.vbs
; Отправлять ответ. Если ключ отсутствует,
; либо его значение не равняется единице ответ отправляться не будет
reply = 1
; Номер, на который следует отправлять ответ
replyTo = 7917XXXXXXX
; Действие разрешено, если запрос пришел с одного из указанных номеров
allowedTo = 7917XXXXXXX,7902YYYYYYY
Если с номера 7917XXXXXXX или 7902YYYYYYY придет сообщение с текстом 123 будет выполнен скрипт cpuLoad. vbs и ответ будет отправлен на номер 7917XXXXXXX
Скрипт cpuLoad. vbs содержит:
On Error Resume Next
Dim strComputer: strComputer = «.»
Dim strResponse
Set objWMIService = GetObject(«winmgmts:\\" & strComputer & «\root\CIMV2»)
Set colItems = objWMIService. ExecQuery(«SELECT * FROM Win32_Processor»,48)
For Each objItem in colItems
strResponse = strResponse & «CPU load: « & objItem. LoadPercentage & «%" & vbCrLf
Next
Wscript.Echo strResponse
* This source code was highlighted with Source Code Highlighter.
Скрипт, через WMI, получает информацию об установленных процессорах, для каждого из них определяет текущую загрузку и выдает результат через Wscript. Echo. Этот текст и будет отправлен SMS-кой.
Внимание! Не используйте в скрипте MsgBox, при выполнении такого скрипта программа будет ждать окончания выполнения скрипта, а скрипт, в свою очередь, закрытия окна сообщения.
В качестве примера в архиве так же присутствует скрипт для определения IP адреса подключения к локальной сети и открытия mp3 файла.
После запуска в директории программы будет создан файл debug. log, который, в случае неработоспособности, сможет подсказать где искать причину.
Для себя я не смог найти практического применения этой программы, т. к. не занимаюсь администрированием.
В процессе разработки использовал только забавы ради (отправить сообщение, чтобы включить музыку, озадачив при этом супругу, которая в это время сидит за компьютером).
Буду рад, если программа кому-нибудь окажется полезной.
UPD
Набор классов для получения, отправки SMS сообщений и пример использования в исходниках на C++ лежит здесь По идее должно работать под любой версией Windows