Показать сообщение отдельно
  #1  
Старый 13.02.2011, 15:15
Аватар для Admin
Admin Admin сейчас на форуме
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,564
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию Исходник - Пишем свой Jinn или как отправить SMS сообщение на компьютер


Здравствуйте господа тунеядцы и разбойники! =)

Сегодня мы с вами поговорим о вещице довольно новой и интересной без которой современному уважающему себя ксакепу не обойтись! =)

А именно о ДжиИИИИнах =) нет-нет, не о тех которые живут в лампах олигархов на ближнем востоке.

Jinn если кто ещё не знает это такая програмулина которая работает в связке с другой програмулиной и выполняет ваши пожелания.

В качестве второй програмулины мы возьмём SMSER.

А точнее в качестве Первой... потому что именно SMSER будет у нас всем руководить а джинн будет выполнять его прихоти.

Находится она здесь http://SMSER.mobi

SMSER это програмка приёмник SMS сообщений...

С её помощью можно отправить себе на компьютер любое SMS сообщение с вашего телефона.

Принцип такой вы скачиваете её себе на компьютер и регистрируетесь!

После регистрации у вас будет свой ID и KEY

ЧТобы отправить SMS себе на компьютер нужно написать:

SMSER 1000:1234 блаблабла
- вместо 1000 ваш ID
- вместо 1234 ваш KEY

и оправить это на номер 1141

Тут вроде всё просто всё понятно...

Но нам то нужно не блаблабла отправлять а команды для нашего джинна.

Вот и пришла очередь написать свой jinn который будет выполнять наши команды когда мы отправим SMS сообщение.

На элементарном примере мы рассмотрим как можно отправить SMS и открыть/закрыть CD.

Итак берём Delphi
Код:
procedure Send(Target: Hwnd; Text: PChar);
var
  xData: TCopyDataStruct;
begin
  xData.cbData:=Length(Text)+1;
  xData.lpData:=Text;
  SendMessage(Target,WM_COPYDATA,0,LParam(@xData));
end;

procedure TForm1.FormCreate(Sender: TObject); 
var
 SMSER: Integer; 
 Prefix, Command: String; 
begin 
 if AnsiLowerCase(ParamStr(1))='jinn' then 
  begin
   SMSER:=StrToInt(ParamStr(2)); 
   Prefix:=Copy(ParamStr(3),0,Pos('#',ParamStr(3))); 
   Command:=Copy(ParamStr(3),Pos('#',ParamStr(3))+1,Length(ParamStr(3))); 

    if AnsiLowerCase(Command)='ocd' then 
     begin 
      Send(SMSER,PChar(Prefix+'Врага оттолкнул! иду по приборам! =)' ); 
      mciSendString('Set cdaudio door open wait', nil, 0, 0); // Открываем CD 
     end; 

    if AnsiLowerCase(Command)='ccd' then
     begin
     Send(SMSER,PChar(Prefix+'Гаубица заряжена! =)' ); 
     mciSendString('Set cdaudio door closed wait', nil, 0, 0); // Закрываем CD 
    end;
   Halt;
  end;
end;

Не забудьте добавить в uses MMSystem

Схема такая... по сути Джинн это обычный файл который запускается с 3 параметрами.

Главной его целью является получение и выполнение команды с ответом отправителю.

test.exe jinn 12345 z#ocd

1) указатель - jinn
2) хэндл отправителя - 12345 (SMSER)
3) команда для Джинна - z#ocd

Джинн должен проверить есть ли указатель jinn если он есть то джинн начинает свою работу...

Джинн получает хэндл отправителя и копирует его в переменную чтобы в дальнейшем отправить на него ответ.

Далее Джинн приступает к обработке команды он делит её на 2 части префикс z# и собственно саму команду ocd.

Затем Джинн выполняет команду ocd - Открытие CD после чего Джинн составляет ответ из префикса z# + сообщение 'Врага оттолкнул! иду по приборам! =)' и отправляет это на хэндл 12345 (SMSER)

Далее это сообщение уже получает наш SMSER и отправляет его нам на телефон! =)

Всё просто! Осталось только подключить наш джинн к SMSER(у).

Открываем в SMSER(е) Конфигуратор и жмём Добавить, указываем путь к нашему файлу и ставим для нашего джинна префикс z#

Готово! =) теперь, когда мы отправим на номер 1141

SMSER 1000:1234 z#ocd

CD откроется и нам на телефон придёт SMS: 'Врага оттолкнул! иду по приборам! =)'

Чтобы закрыть CD нужно отправить SMSER 1000:1234 z#сcd

Разумеется это всего лишь пример!
Всегда можно придумать что-нибудь более полезное и интересное =)
Например, экстренную удалялку секретных файлов на тот случай если доступ к компьютеру получил злоумышленник а вас рядом нет.
И многое-многое другое =)

Автор: Geek
E-mail: geek@smser.mobi

Скачать: jinn.zip (6 Кб)
Ответить с цитированием