Merhaba, Piyasada bazı programlar var.
vın modemleri yada modem özelliği olan telefonlar üzerinden sms atıyor.
telefonu bilgisayara bağıyorusun. o kendine bir com numarası laıyor com 13 gibi .
modem driver ı açınca eskiden kullandığımız dailup modem olarak kullanabiliyorsunuz.
bu konuda bilgisi veya küçük bir kodu olan olan var mı nasıl yapılır
teşekkürler
Cep telfonuna sms attırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Cep telfonuna sms attırma
Ahmet DENİZ
Re: Cep telfonuna sms attırma
Bahsettiğiniz com üzerinden seri bağlantı gibi bağlnıyorsunuz TSocket, TComport ya da ona benzer bir bileşenle veya Socket metodlarıyla.
Sonra sms ile ilgili AT komutlarını icra ediyorsunuz.
zamanında yaptığım bir program vardı. Ticari sebeplerden Tüm metodu veremem ancak ipucu teşkil eden kıısmlarını vereyim.
AT komutları ekseriyette aynıdır ancak cihazdan cihaza bazı komutlar değişiklik göstermektedir. Kodlarınızı ona göre düzenlemelisiniz.
Kolay gelsin.
Sonra sms ile ilgili AT komutlarını icra ediyorsunuz.
zamanında yaptığım bir program vardı. Ticari sebeplerden Tüm metodu veremem ancak ipucu teşkil eden kıısmlarını vereyim.
Kod: Tümünü seç
function TMain.YazBekle(Yazilacak : AnsiString; BeklemeSuresi : Integer;Log : TStrings;SleepTime : Integer): AnsiString;
var
xxStr : String;
b : Boolean;
Events : TComEvents;
Begin
try
if (log<>nil) and (Yazilacak<>'') then log.Add(Yazilacak);
Application.ProcessMessages;
Result :='';
b:=false;
if Yazilacak <> '' then Comport.WriteStr(Yazilacak + #13);
Events := [evRxChar];
Comport.WaitForEvent(Events,0,BeklemeSuresi);
if SleepTime > 0 then Sleep(SleepTime);
xxStr :='';
Comport.ReadStr(xxStr,255);
b:=True;
except on e : Exception do
result := UpperCase('ERROR:For[' + Yazilacak +']'+e.Message);
end;
if b then Result :=UpperCase(xxStr);
if log<>nil then log.Add(Result);
Application.ProcessMessages;
End;
Kod: Tümünü seç
function TMain.MesajGonderEx(Telefon: AnsiString; Mesaj: AnsiString.....
const
MsgTimeOut = 45000;
var
b : Boolean;
TTBas : TDateTime;
xStr : String;
begin
try
if Comport.Connected then ComPort.Connected := False;
Comport.Events := [];
ComPort.Connected := True;
except
Result := 'Bağlantı esnasında hata oluştu...';
Exit;
end;
try
Result :='';
{baskıyı durdurun :)}
YazBekle(';',500,apLog,500);
{Echo off}
YazBekle('ATE0', 500, apLog, 500);
{ Mesaj kayıt ayarı }
YazBekle('AT+CPMS="MT","ME","SM"', 500, apLog, 500); // Bu kullnacağınız cihaza göre değişiklik gösterir
{ SMS indication }
YazBekle('AT+CNMI=3,1,3,2,1', 500, apLog, 500);
{ SMS message format }
YazBekle('AT+CMGF=1', 500, apLog, 500);
xStr := YazBekle(';', 1000, apLog,500);
xStr :=YazBekle('AT+CMGS='+Telefon,10000,apLog,1000); //mesaj gönderilecek numara
...
...
if Pos('>',xStr)>0 then // eğer numarayı kabul edip mesajı bekliyorsa bu sembol gelir
Begin
xStr :=YazBekle(SMSMEtni(Mesaj)+#26,2000,apLog,500); //Mesaj + Ctrl+Z
...
...
...
if (Pos('+CMGS',xStr)>0) or (Pos('OK',xStr)>0) then
Begin
b:=True;
Result := 'Mesaj gönderildi...';
End else
...
...
...
AT komutları ekseriyette aynıdır ancak cihazdan cihaza bazı komutlar değişiklik göstermektedir. Kodlarınızı ona göre düzenlemelisiniz.
Kolay gelsin.