Sunday, July 22, 2012

VB6 SMS Gateway: Menerima dan Menampilkan SMS Baru

Mengenai cara menerima dan menampilkan SMS yang masuk menggunakan AT Command melalui aplikasi VB6 - Setelah kita dapat mengirim SMS melalui AT Command dengan menggunakan kode VB6 yang ini dan yang yang ini, membicarakan fungsi sleep dalam posting yang ini yang ini dan yang ini (Hai, terlalu banyak kata "yang ini"!), dan contoh kode untuk mendeteksi modem yang ada disana, dan mengirim kode ussd melalui AT Command yang ada disana. Sekarang tiba saatnya untuk membicarakan cara menerima SMS disini.

Maka tanpa kata berpanjang lebar menunggu cacing berbulu, di bawah ini adalah kode VB6 yang mewakili tindakan dengan judul di atas:

Option Explicit

Dim strBuffer As String

Private Sub Form_Load()
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    With MSComm1
        .CommPort = 3
        .Settings = "115200,N,8,1"
        .Handshaking = comRTS
        .RTSEnable = True
        .DTREnable = True
        .RThreshold = 1
        .SThreshold = 1
        .InputMode = comInputModeText
        .InputLen = 0
        .PortOpen = True
    End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If MSComm1.PortOpen = True Then
        MSComm1.PortOpen = False
    End If
End Sub

Private Sub MSComm1_OnComm()
    Select Case MSComm1.CommEvent
        Case comEvReceive
            strBuffer = strBuffer & MSComm1.Input
            Do
                strBuffer = strBuffer & MSComm1.Input
            Loop While MSComm1.InBufferCount
            If InStr(1, strBuffer, "+CMTI") > 0 Then
                If Right(strBuffer, 1) = vbLf Then
                    Text1.Text = strBuffer
                End If
            End If
    End Select
End Sub
Sampai dengan kode di atas, apabila ada SMS baru, maka modem akan memberitahukan kepada kita dengan diawali "+CMTI" misalnya: +CMTI: "SM",11. SM artinya memory yang digunakan adalah SIM card, sedangkan angka 11 mewakili indeks dari SMS tersebut, jadi apabila kita ingin mengakses/membaca SMS tersebut harus menggunakan 11 sebagai indeksnya. Gantilah kode yang terdapat dalam event MSComm1_OnComm() diatas dengan kode dibawah ini, apabila Anda berkeinginan membaca isi SMS baru tersebut.
Private Sub MSComm1_OnComm()
    Select Case MSComm1.CommEvent
        Case comEvReceive
            strBuffer = strBuffer & MSComm1.Input
            Do
                strBuffer = strBuffer & MSComm1.Input
            Loop While MSComm1.InBufferCount
            If InStr(1, strBuffer, "OK") > 0 Then
                Text1.Text = strBuffer
                Dim d() As String
                d = Split(strBuffer, vbCrLf)
                strBuffer = ""
            End If
            If InStr(1, strBuffer, "+CMTI") > 0 Then
                Do
                    strBuffer = strBuffer & MSComm1.Input
                Loop While MSComm1.InBufferCount
                If Right(strBuffer, 1) = vbLf Then
                    Text1.Text = strBuffer
                    Dim s() As String
                    s = Split(strBuffer, ",")
                    ReadSMSByIndex Trim$(s(UBound(s)))
                End If
            End If
    End Select
End Sub

Private Sub ReadSMSByIndex(Index As Integer)
    strBuffer = ""
    MSComm1.Output = "AT+CMGR=" & Index & vbCrLf 'baca SMS yang berada di index ke-1
End Sub
Setelah kita modifikasi, maka akan menghasilkan:
+CMGR: "REC UNREAD","+6281315673456",,"12/06/26,01:43:51+28"
Test SMS. Test SMS.

OK
Lakukan parse (urai, pisah, memilih dan memilah) jika Anda terganggu dan tidak nyaman dengan perolehan response data yang selalu diawali dengan "+CMGR: "REC UNREAD" kemudian koma dan diakhiri dengan kata "OK". Terutama jika Anda bermaksud memasukan data tersebut ke dalam objek ListView atau MSHFlexgrid, dan lain-lain, demikian pula jika bermaksud menghubungkannya dengan database Access, SQLite, MySQL, atau database apa saja tergantung selera Anda, tidak ada paksaan dalam hal ini.

Source :  http://vb6-sourcecode-insert.blogspot.com/

HOT INFO

Anda ingin mencari refrensi dan contoh program lengkap ? Kami ada. Sekarang Anda bisa mencari Source Code SMS Gateway di situs ini : www.panduanSkripsi.net. Koleksi program lengkap di sana, proyek PHP dan MySQL, juga jQuery dan Framework. Bukunya juga ada.

4 comments:

  1. gak fungsi mas, kok gk tampil pesan di text1nya padahal dia penampung strbuffernya

    ReplyDelete
  2. bagus sekali artikel nya ,...terima kasih gan....udah puluhan tahun nyari kodenya, baru kali ini ketemu yang bener,....terima kasih gan....pahala nya nggak putus putus nih....

    ReplyDelete
  3. tidak bisa menampilkan pesan di text-nya bozzz....
    cuma keluar +CMTI: "ME",0

    ReplyDelete
  4. SMS Integration using SMS API vb 6.0 is the best option for your business promotion or advertising. It is today’s easiest and fastest way to communicate with your customer on large scale. VB 6.0 SMS

    ReplyDelete