На этот раз, мы рассмотрим, как можно работать с sms-сообщениями, при помощи библиотеки Skype4Com. Тут все очень просто, очень похоже, как мы работали со звонками. Тут только лишь отличается интерфейсом и типом, который определяет статус отправки сообщения.
Что касается статуса отправки сообщения, то сделаем это тоже быстрым методом, с использованием компонента TTimer.
Проект наш уже имеется, нам необходимо только лишь добавить необходимые компоненты, а понадобятся нам следующие компоненты:
- TButton
- TEdit — 2 шт.
- TMemo
TEdit - для ввода номера телефона, кому мы будем отправлять SMS и от кого, а также необходим TMemo- для ввода текста SMS, ну а по нажатию на TButton мы будем отправлять SMS, на указанный номер.
С проектом, вроде бы, разобрались. Теперь нам необходимо объявить 2-е переменные, одна для работы со статусом, а вторая для отправки sms-сообщения.
Для этого нам потребуется интерфейс — ISmsMessage, а также тип — TSmsMessageStatus, для работы со статусом отправки сообщения. В итоге, у меня получилось следующее:
var
Sms:ISmsMessage;
SmsStatus:TSmsMessageStatus;
Создавать и отправлять sms-сообщения, можно и без объявления переменной, ссылки на интерфейс, но сделав это, мы получим полный контроль над каждым sms-сообщением, так что это довольно таки удобно.
Давайте приступим к нашему проекту. На событие OnClick нашей кнопки, по нажатию на которую, мы будем отправлять sms-сообщение, напишем следующий код:
procedure TForm2.Button8Click(Sender: TObject);
var
idsms:Integer;
begin
Sms:=CoSmsMessage.Create;
Sms:=Skype.CreateSms(smsMessageTypeOutgoing,'TNumber');
idsms:=Sms.Id;
Sms.Body:='Body sms';
Sms:=Skype.SendSms('InNumber','TextMessage','OutNumber');
SmsStatus:=Sms.Status;
StatusBar1.Panels[1].Text:=Skype.Convert.SmsMessageStatusToText(SmsStatus);
end;
Сначала создаем объект ISmsMessage, после чего, с помощью функции CreateSms, мы создаем наше sms-сообщение, где указываем его тип, а также номер, для которого оно будет создаваться.
После этого, мы получаем идентификатор нашего sms-сообщение , с помощью свойства Body - задаем заголовок сообщению, с помощью функции SendSms - отправляем Sms-сообщение, где указываем номер телефона, кому отправляем, текст сообщения, а также номер телефона, от кого отправляем.
Дальше получаем статус отправки sms-сообщения и конвертируем его в текст, после чего выводим в TStatusBar.
Как видите ничего сложного. Как я и говорил, каждым sms-сообщением можно управлять по-своему, вот пример, как удалить конкретное sms-сообщение:
procedure TForm2.Button8Click(Sender: TObject);
var
idsms:Integer;
begin
Skype.Smss.Item[idsms].Delete;
end;
Но все это можно было сделать без создания дополнительных объектов, а использовать объект TSkype. Например:
procedure TForm2.Button8Click(Sender: TObject);
begin
Skype.CreateSms(smsMessageTypeOutgoing,'TNumber');
Skype.Smss.Item[0].Body:='body sms';
Skype.SendSms('InNumber','Text message','OutNumber');
end;
Ну вот и все, как видите ничего сложного нету. Как-то мы рассматривали статью про отправку sms-сообщений, через sms-шлюзы. Так что вот, мы еще один рассмотрели способ отправки sms, но данный способ требует денежных затрат, хотя если у Вас бизнес, который требует отправки sms-сообщений Вашим клиентам, то затраты для Вас будут не существенные, удачи.