Bagi anda para programmer tentu ingin membuat fungsi cek update otomatis atau manual yang ringan dan cepat pada program anda,sehingga jika ada update versi terbaru maka program anda akan menampilkan info atau semacamnya. Fungsi ini menggunakan WinAPI sehingga lebih cepat dan ringkas daripada harus memakai file *.ocx atau library lainnya yang mungkin ada.
Berikut saya berikan source nya tentang membuat cek update menggunakan VB 6.0.
sebelumnya anda harus mempunyai setidaknya hosting sendiri untuk mengupload file update.txt pada web anda agar URL untuk cek update permanen.pastikan file update.txt berisi versi program updatenya,pada contoh ini maka file update.txt berisi nilai "1.8" tanpa tanda kutip.
Source Code:
Option Explicit
Const scUserAgent = "N-Shield Update Program"
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://www.yudha-software.com/sites/default/files/update.txt" 'url file yang berisi info update
Private Declare Function InternetGetConnectedState Lib "wininet" (ByRef _
lpSFlags As Long, ByVal dwReserved As Long) As Long
Const INTERNET_CONNECTION_MODEM = 1
Const INTERNET_CONNECTION_LAN = 2
Const INTERNET_CONNECTION_PROXY = 4
Const INTERNET_CONNECTION_MODEM_BUSY = 8
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Function cekupdate()
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
Dim versi As String
sBuffer = Space(5) 'menyediakan buffer sebanyak 5 byte/karakter
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
InternetReadFile hFile, sBuffer, 5, Ret 'baca 5 byte dari file
InternetCloseHandle hFile
InternetCloseHandle hOpen
versi = "1.7" 'harus naik 1 tiap versi
If sBuffer > versi Then
lblupdate.Caption = "Updates Found"
jcbutton1.Enabled = True
lblnew.Caption = sBuffer
Else
lblupdate.Caption = "No Updates Found..you are using recents version"
jcbutton1.Enabled = False
lblnew.Caption = "n/a"
End If
End Function
'Tambahan,untuk melakukan check apakah komputer terhubung ke internet
Public Function IsConnectedToInternet(Optional connectMode As Integer) As Boolean
Dim Flags As Long
' this ASPI function does it all
IsConnectedToInternet = InternetGetConnectedState(Flags, 0)
' return the flag through the optional argument
connectMode = Flags
End Function
Cara Kerja:
Pada file update.txt berisi value 1.8 dan pada program di set value menjadi 1.7
sehingga jika program membaca file update.txt dan membandingkan dengan versi program yaitu 1.7, maka fungsi cek update akan menampilkan info Updates Found dan sebaliknya.
Perlu di-ingat bahwa setiap membuat versi baru dari program misalnya versi 2.1, maka file update.txt harus di ganti valuenya menjadi lebih besar yaitu 2.2 tentu jika update sudah ada,kalau belum ada jangan di ganti terlebih dahulu value di file update.txt tersebut.
referensi:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385098(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385103(v=vs.85).aspx
Semoga Bermanfaat
Artikel ini dibuat oleh Yudha Tri Putra sebagai penulis artikel, diperbolehkan menyalin artikel ini secara utuh tanpa mengubah atau menambah isi artikel.
Gan Ane Minta Project and exe nya donk
BalasHapusproject yang menggunakan source code ini nanti saya share diartikel selanjutnya
BalasHapus