Wednesday, December 12, 2012

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.
READ MORE - Mengirim SMS Menggunakan Modem Wavecom - VB6 Code

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.
READ MORE - Mengirim SMS Disertai Verifikasi Terkirim - VB Source Code

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
READ MORE - Fungsi Wait Sleep Tanpa Windows API - VB6 Code

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.
READ MORE - VB6 Code - Fungsi Sleep Atau Wait Yang Diperbaiki