ВСЕ ЗАПИСИ
Статьи,заметки
Отправка СМС через GSM модем из программы на Delphi
В одной из моих прог используется функция оповещения об определённых событиях по СМС, которые отсылаются с GSM модема, который подключен к компу, я когда-то обещал рассказать об этом способе более подробно. Это делается с помощью AT команд, посылаемых в COM порт, к которому подключен модем, пример кода:
//---Delphi 7 code-------
var
hFile:THandle;
s1,s2,s3:string;
z:Cardinal;
.......................
begin
//открываем порт COM6
hFile:=Windows.CreateFile(PChar('\\.\COM6'),
GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0);
if hFile<>INVALID_HANDLE_VALUE then
begin
s1:='AT+CMGF=1'+#$D#$A;
z:=256;
//перевод модема в текстовый режим
WriteFile(hFile,PAnsiChar(s1)^,Length(s1),z,nil);
s2:='AT+CMGS="+79057335199",145'+ #$D#$A;
//номер телефона адресата
WriteFile(hFile,PAnsiChar(s2)^,Length(s2),z,nil);
s3:='SMS text here'+ #$D#$A#$1A;
//текст сообщения (только латиница!)
WriteFile(hFile,PAnsiChar(s3)^,Length(s3),z,nil);
Windows.CloseHandle(hFile);//закрываем порт
end;
end;
//----------
Таким образом можно отправлять сообщения, только если они содержат исключительно латинские символы.
Если же нужно, чтобы текст сообщения был на кириллице, придется перевести модем в цифровой режим, и отправить ему строку,в формате PDU (protocol description unit). Эта строка формируется по специальному алгоритму и представляет собой HEX-последовательность, в которой закодированы все параметры СМС: срок доставки, номер СМС-центра, номер получателя, текст самого сообщения и его кодировка, и пр.
AT команды:
AT+CMGF=0 - переключение в режим PDU
AT+CMGS=44 тут длина сообщения в байтах
AT+CMGS=440011000C919725268371F300
08C11E041F0440043E043204350440043A0
4300020005400450053005400230033 тут текст СМС, включая остальные параметры.
В процессе реализации этого способа отправки, я изучил много различных исходников, найденных в инете, в итоге создал достаточно простой шаблон кода, где сам код не разбит на кучу различных модулей, и не задействованы никакие сторонние компоненты для работы с COM портом, всё реализовано стандартными средствами Delphi.
Вот пример кода для юникодных версий Delphi (компилировал в RAD Studio XE5):
показатьА это код для тех, кто работает в Delphi 7:
показатьскачать рабочий исходник для RAD Studio (обновлён, добавлена поддержка FLASH СМС)
скачать рабочий исходник для Delphi 7
В данных примерах сообщение может содержать русский и английский текст, цифры, спецсимволы, типа #, @ и пр., всё это будет корректно отображаться в телефоне. Длина СМС не должна превышать 70 символов. Для длинных сообщений до 140 символов, используется свой метод кодирования, который здесь не рассматривается.
Я использую модем ZTE MF-180, который не залочен, и может работать с сим-картами любого оператора. Он определяется в моей системе, в Диспетчере устройств как ZTE NMEA Device (COM6), в разделе Порты (COM и LPT), соответственно в программе, которая работает с модемом, прописан порт COM6, если необходимо, через тот же Диспетчер устройств порт можно изменить на любой другой, если он не занят уже каким-либо устройством.
Следует иметь ввиду, что если в модеме имеется программа-звонилка от оператора сотовой связи, то при подключении модема к компьютеру она будет запускаться автоматически , и ваша программа не сможет получить доступ к модему. Это можно обойти например, таким способом: я нашел родные драйвера для модема, и первым делом, не подключая модем к компу, установил сначала их, и только потом подключил модем. Система при этом выдала стандартное сообщение, что найдено новое оборудование, после чего следует выбрать опцию "атоматическая установка драйверов", после завершения модем будет виден в разделе Мой компьютер просто как съёмный диск, он появится в разделе Порты (COM и LPT), и с ним можно будет работать.
Драйвер для ZTE MF-180 можно загрузить здесь
Добавлено: апрель 2016
©Veterock
комментарии (5)
+ за пост
добавлено: 16.01.21 23:41
0gH4HWlmowflnMA00S0PVvF0JwPTkDBM T6GkWIVm7XsuMEl8TFzE2zvNoD6yI6tv u2DQcXopJHzPh5xjuMYvVZxQiSIqBits GoPB4hPHM43EtoHnUh7TeeVkFKBkuoHc C1ZthSPTGpsxHR9YUtC4VgVCtbvwDUwG
добавлено: 19.11.20 21:58
Добрый день! Предлагаем рассылку ваших сообщений через формы-контактов сайтов предприятий Российской Федерации и СНГ. Рассылаем ваши сообщения через формы обратной связи сайтов фирм по любым странам и доменным зонам мира на всех языках. kontakt-forma .cn/prajs-list/ Ваше коммерческое предложение приходит на контактный электронный ящик организации. Тест: двадцать тысяч сообщений по РФ на ваш почтовый ящик - тысяча руб. 20000 сообщений по зарубежным зонам на ваш электронный адрес - двадцать $. От вас требуется почтовый ящик, заголовок и текст письма. Организации и Предприятия Российской Федерации - 4025015 организаций - 3000 рублей за 1млн. Москва и Московская обл. 976829 предприятий - 5000 рублей. Санкт-Петербург и область 654194 организаций - 5000 руб. Новые организации Российской Федерации зарегистрированные в 2016-2020 году 970660 доменов - 5000 рублей. Новые домены России, зарегистрированные 24-48 часов назад (Цикл из 15 рассылок в течение месяца). - 15000 рублей. Русскоговорящие страны, например: Украина 860236 доменов – 5000 руб Belarus 114254 доменных имён – 5000 рублей Kazakhstan 121391 доменов – 5000 руб Latvia 96566 сайтов — 5000 руб Lithuania 124182 доменов — 5000 рублей Eesti 119701 доменов — 5000 руб и.т.д. Все русскоговорящие страны минус Россия 15 стран 1979217 сайтов - 10000 руб. Вся Europe 44 страны 60726150 доменов - 60000 руб. Весь European Union 28 стран 56752547 доменных имён- 55000 рублей. Вся Азия 48 стран 14662004 доменных имён - 15000 руб. Вся Африка 50 стран 1594390 доменов - 10000 руб. Вся Северная и Центральная Америка 35 стран 7441637 сайтов - 15000 рублей. Вся Южная Америка 14 стран 5826884 сайтов - 10000 руб. Новые сайты со всего мира зарегистрированные 24-48 часов назад (Цикл из 15 рассылок в течение месяца). - 30000 руб. Рассылки по движкам сайтов: Amiro 1794 доменных имён 1000 руб. Bitrix 199550 доменных имён 3000 руб. Конкретэ5 39121 доменов 2000 рублей. CONTENIDO 5096 сайтов 1000 рублей. CubeCart 1062 доменных имён 1000 рублей. Datalife Engine 23220 доменов 2000 рублей. Дискуз 47962 доменных имён 2000 рублей. Дотнетнук 22859 сайтов 2000 руб. Drupal 802121 сайтов 5000 рублей. Флексби 15072 доменов 1000 руб. Хост CMS 5042 доменов 1000 руб. Инстант CMS 4136 доменов 1000 рублей. Инсалес 11081 доменов 1000 руб. Инвизион Повер Боард 265 доменов 1000 рублей. Джумла 1906994 доменных
добавлено: 12.09.20 10:40
Revolutional update of captchas breaking package "XEvil 5.0": Captcha solving of Google (ReCaptcha-2 and ReCaptcha-3), Facebook, BitFinex, Bing, Hotmail, SolveMedia, Yandex, and more than 12000 another types of captchas, with highest precision (80..100%) and highest speed (100 img per second). You can use XEvil 5.0 with any most popular SEO/SMM programms: iMacros, XRumer, SERP Parser, GSA SER, RankerX, ZennoPoster, Scrapebox, Senuke, FaucetCollector and more than 100 of other programms. Interested? There are a lot of introducing videos about XEvil in YouTube. Free XEvil Demo available. Good luck!
добавлено: 17.08.20 04:52
Производствосветодиодных табло для спорта, бегущих строк, табло для АЗС
добавлено: 15.06.18 04:58
Обновить
Powered by ©Veterock Studio 2013-2021