Sunday, July 22, 2012

VB6 SMS Gateway: Menambahkan Fitur Auto Reply

Mengenai cara membalas SMS secara otomatis melalui aplikasi VB6 - Sebelumnya kita telah membahas mengenai cara menerima SMS baru klik disini, nah sekarang kita akan menambahkan fitur auto reply melalui AT Commands dengan aplikasi VB6 yang kita buat sendiri. Adapun contoh kode VB6 membalas SMS otomatis adalah seperti di bawah ini:
Option Explicit

Dim strBuffer As String
Dim blnFirstLoad As Boolean

Private Sub Command1_Click()
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    With MSComm1
        .PortOpen = True
        .Output = "AT+CMGS=" & Chr(34) & TxtNumber.Text & Chr(34) & vbCrLf
        .Output = TxtMessage.Text & Chr(26)
    End With
End Sub

Private Sub Form_Load()
    With MSComm1
        .CommPort = 7 'port disesuaikan atau beri kode auto detect port modem
        .Settings = "115200,N,8,1"
        .Handshaking = comRTS
        .RTSEnable = True
        .DTREnable = True
        .RThreshold = 1
        .SThreshold = 1
        .NullDiscard = True
        .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, "+CMGR") Then
        If InStr(1, strBuffer, "OK") Then
            Text1.Text = strBuffer
        End If
    End If
    If InStr(1, strBuffer, "+CMTI") > 0 Then
        If Right(strBuffer, 1) = vbLf Then
            Dim s() As String
            s = Split(strBuffer, ",")
            Debug.Print s(UBound(s))
             ReadSMSByIndex Trim$(s(UBound(s)))
             Delay 1
             Command1_Click 'Auto reply
            strBuffer = ""
        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

Private Sub Delay(ByVal HowLong As Date)
    Dim endDate As Date
    endDate = DateAdd("s", HowLong, Now)
    While endDate > Now
        DoEvents
    Wend
End Sub
Demikian contoh kode VB6 untuk membalas SMS baru secara otomatis, Anda dapat memodifikasi kodenya untuk disesuaikan dengan kebutuhan.

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.

Mengirim SMS Disertai Verifikasi Terkirim - VB Source Code

Mengenai mengirim SMS menggunakan modem wavecom melalui aplikasi yang dibuat menggunakan VB6 - Ini merupakan kelanjutan dari project sebelumnya, pada kesempatan kali, kita akan menambahkan fitur verifikasi, apakah SMS telah terkirim atau gagal terkirim. Nah, bagaimanakah kode untuk mengirim SMS menggunakan modem wavecom melalui aplikasi VB6 yang disertai pesan verifikasi? berikut adalah kodenya:

Option Explicit

Dim strBuffer As String

Private Sub Command1_Click()
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    With MSComm1
        .CommPort = 7
        .Settings = "115200,N,8,1"
        .Handshaking = comRTS
        .RTSEnable = True
        .DTREnable = True
        .RThreshold = 1
        .SThreshold = 1
        .InputMode = comInputModeText
        .InputLen = 0
        .PortOpen = True
    End With
    MSComm1.Output = "AT+CMGS=" & Chr(34) & TxtNumber.Text & Chr(34) & vbCrLf
    Delay 1
    MSComm1.Output = TxtMessage.Text & Chr(26)
    If WaitForSuccess Then
        MsgBox "SMS telah terkirim", vbInformation + vbOKOnly
    Else
        MsgBox "SMS gagal terkirim", vbCritical, "SMS Gagal"
    End If
    
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
    End Select
    Debug.Print strBuffer
End Sub

Private Function WaitForSuccess() As Boolean
    Dim i As Integer
    Dim strInput As String
    Dim strPart As String
    Dim c As String, b As String
    For i = 1 To 5
        Do
            Delay 1
            c = strBuffer
            strBuffer = ""
            If c = "" Then Exit Do
            b = strInput & c
        Loop
        strPart = b
        strInput = strInput & strPart
        If InStr(1, strInput, vbCrLf & "OK" & vbCrLf) > 0 Then Exit For
        If strPart = "" Then
            Delay 1
        End If
    Next
    WaitForSuccess = InStr(1, strInput, vbCrLf & "OK" & vbCrLf) > 0
End Function

Private Sub Delay(ByVal HowLong As Date)
    Dim endDate As Date
    endDate = DateAdd("s", HowLong, Now)
    While endDate > Now
        DoEvents
    Wend
End Sub
 
Demikian mengenai cara mengirim SMS menggunakan modem wavecom melalui aplikasi VB6 yang ditambahkan fitur verifikasi, semoga bermanfaat.

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.

VB6 SMS Gateway: AT Command Tester Sederhana

Option Explicit 

Dim strBuffer As String 

Private Sub cmdSend_Click()
    txtResult.Text = ""
    txtProcess.Text = ""
    strBuffer = ""
    If UCase$(Left$(txtATCommand.Text, 2)) <> "AT" Then
        MSComm1.Output = txtATCommand.Text & Chr(26)
    Else
        MSComm1.Output = txtATCommand.Text & vbCrLf
    End If
End Sub

Private Sub Form_Load()
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    With MSComm1
        .CommPort = 7
        .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
    End Select
    txtProcess.Text = strBuffer
    txtProcess.SelStart = Len(txtProcess.Text)
    Do
        strBuffer = strBuffer & MSComm1.Input
    Loop While MSComm1.InBufferCount
    If InStr(1, strBuffer, "OK") > 0 Then
        txtResult.Text = strBuffer
        txtResult.SelStart = Len(txtResult.Text)
    ElseIf InStr(1, strBuffer, "ERROR") Then
        txtResult.Text = strBuffer
        strBuffer = ""
    End If
End Sub
 
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.

Mengirim SMS Menggunakan Modem Wavecom - VB6 Code

Mengenai cara mengirim SMS menggunakan aplikasi yang dibuat dengan VB6 menggunakan modem GSM Wavecom - Adapun cara mengirim SMS menggunakan aplikasi VB6 secara sederhana kodenya adalah sebagai berikut:
Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
    With MSComm1
        .CommPort = 7 'Port disesuaikan terhadap modem Wavecom yang terdeteksi
        .Settings = "115200,n,8,1"
        .Handshaking = comRTS
        .RTSEnable = True
        .DTREnable = True
        .RThreshold = 1
        .SThreshold = 1
        .InputMode = comInputModeText
        .InputLen = 0
        .PortOpen = True
    End With
    MSComm1.Output = "AT+CMGS=" & Chr(34) & TxtNumber.Text & Chr(34) & vbCrLf
    Sleep 1000
    MSComm1.Output = TxtMessage.Text & Chr(26)
End Sub

Caranya:
  1. Buatlah 2 TextBox masing-masing diberi nama TxtNumber dan TxtMessage
  2. Tambahkan OCX Microsoft Comm Control 6.0 (MSComm)
  3. Tambahkan satu CommandButton dengan nama default. 
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.

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.

Fungsi Wait Sleep Tanpa Windows API - VB6 Code

Mengenai fungsi wait atau sleep tanpa menggunakan fungsi API - Melanjutkan posting sebelumnya klik disini, sekarang kita akan membuat fungsi sleep atau wait tanpa bantuan API hanya menggunakan kode VB6 murni. Perbedaan fungsi sleep kali ini dengan fungsi sleep sebelumnya adalah:
Fungsi sleep menggunakan Sleep Kernel32.dll:
  • Mem-freeze GUI (membekukan tampilan)
  • Hitungan dalam millisecond
Fungsi sleep kali ini (lebih tepatnya delay time):
  • Tidak mem-freeze GUI
  • Hitungan dalam second
Adapun fungsi sleep atau wait tanpa fungsi API adalah sebagai berikut:
Private Sub Sleep(ByVal HowLong As Date)
    Dim endDate As Date
    endDate = DateAdd("s", HowLong, Now)
    While endDate > Now
        DoEvents
    Wend
End Sub
Jika Anda mau bereksperimen maka buatlah kodenya seperti di bawah ini kemudian bandingkan antara fungsi sleep Kernel32.dll dengan fungsi sleep tanpa API.
Option Explicit

'Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
    Label1.Caption = "Mulai menjalankan fungsi sleep atau wait"
    Label1.Refresh
    Sleep 5 'sleep/wait/hentikan eksekusi kode ke baris berikutnya selama 5 detik
    Label1.Caption = "Terhenti selama 5 detik"
End Sub

Private Sub Command2_Click()
    Dim frm As New Form1
    frm.Show
End Sub

Private Sub Timer1_Timer()
    Static i As Integer
    Caption = i
    i = i + 1
End Sub

Private Sub Sleep(ByVal HowLong As Date)
    Dim endDate As Date
    endDate = DateAdd("s", HowLong, Now)
    While endDate > Now
        DoEvents
    Wend
End Sub
Demikianlah seputar fungsi sleep atau wait, menggunakan API dan tanpa menggunakan API.
Option Explicit

Private Function Sleep(mSecs As Long) As Double
    Dim Duration!
    Duration! = Timer + mSecs
    Do Until Timer > Duration!
        DoEvents
    Loop
End Function

Private Sub Command1_Click()
    Sleep 0.9
    MsgBox "Test"
End Sub
 
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.

VB6 Code - Fungsi Sleep Atau Wait Yang Diperbaiki

Mengenai fungsi sleep atau wait dalam VB6 yang telah diperbaiki - Fungsi sleep disini berbeda dengan fungsi sleep sebelumnya yang menggunakaan salah satu API kernel32 klik disini atau tanpa API klik disini. Keunggulan dari fungsi sleep kali ini adalah:
  • Tidak memfreeze GUI (jadi jika ada objek visual, maka ia akan terefresh dengan baik)
  • Hitungan dalam millisecond.
Adapun fungsi sleep yang telah diperbaiki dengan menggunakan VB6 adalah sebagai berikut:
Option Explicit

Private mCancel As Boolean

Type MSG
   hwnd As Long
   message As Long
   wParam As Long
   lParam As Long
   time As Long
   ptX As Long
   ptY As Long
End Type

Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long
Private Declare Function TranslateMessage Lib "user32" (lpMsg As MSG) As Long
Private Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As MSG) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Private Sub TimerProc()
    mCancel = True
End Sub

Public Sub Wait(frm As Form, mSecs As Long)
    Dim MyMsg As MSG
    Dim TimerID As Long
    
    TimerID = SetTimer(frm.hwnd, ObjPtr(frm), mSecs, AddressOf TimerProc)
    mCancel = False

    Do While Not mCancel
        GetMessage MyMsg, 0, 0, 0
        TranslateMessage MyMsg
        DispatchMessage MyMsg
    Loop

    KillTimer frm.hwnd, TimerID
End Sub
Demikian fungsi sleep dalam VB6 dengan menggunakan timer API. Semoga bermanfaat.

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.