Cara membuat aplikasi Auto Update dengan vb.net - Lama juga ga update blog, karena bingung ngurus blog yang ini yang itu akhirnya terbengkalai salah satunya, yaa diantaranya blog saya yang satu ini. Nah, sekarang jumpa lagi nih sobat degan saya, kali ni kita akan pelajari bersama tentang cara membuat aplikasi auto update.
Pada tutor ini, sebenernya bukan auto update, tapi koq kenapa judulnya auto update? karena saya disini membarikan contoh dengan sebuah button, dimana harus di klik terlebih dahulu apakah ada update terbaru dari aplikasi kita. Pada pelajaran kali ini, sebenarnya hanya untuk aplikasi yang menggunakan sebuah database atau sebuah aplikasi yang mungkin di rilis dengan berbagai banyak versi. Nah, makanya fungsi auto update sangat perlu, contoh seperti aplikasi-aplikasi berbayar gitu, hehehe. Mau tau cara buatnya? yuuk, kita praktekin bareng-bareng.
Berikut
cara membuat aplikasi Auto Update dengan vb.net :
Bahan-bahan :
1 Button
1 Modul
Untuk penampilannya bisa lihat seperti contoh diatas.
Langkah-langkahnya :
- Buka Microsoft Visual Studio 2008 / 2010
- Buat New Project lalu pilih Windows Form Applikasi
- Beri nama suka-suka kalian
- Setelah keluar 1 Form di project kita
- Add bahan-bahan component di toolbox seperti diatas
- Beri nama pada masing-masing component dan atur posisi suka-suka sobat
- Klik kanan pada form project, lalu pilih "View code", lalu pastekan kode berikut :
Private Sub CheckForUpdates()
Dim versionlink As String = "http://www.fileden.com/files/2011/10/23/3213260/My Documents/MessegeRaed.txt"
Dim wc As New WebClient
Dim programversion As String
Try
programversion = wc.DownloadString(versionlink)
Catch ex As Exception
MessageBox.Show("Error, Failed to get program's version!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.Close()
End Try
wc.Dispose()
If programversion = My.Application.Info.Version.ToString Then
End If
If Not My.Application.Info.Version.ToString = programversion Then
autoupdate.Update()
End If
End Sub
- Pada kode diatas terdapat URL contoh database berupa format .txt (itu hanya sebagai contoh)
- Lalu Includekan code berikut dengan memastekan include ini tepat diatas Public Class Form1
Imports System.Net
- Kembali pada Form Project, dan klik 2x pada Button1 dan pastekan kode barikut :
CheckForUpdates()
- Lalu Add Modul dangan cara klik pada Project di Toolbar, Project -> Add Modul, contoh seperti gambar dibawah :
- Setelah itu akan keluar popup seperti gamabar dibawah, dan pillih Modul :
- Lalu klik Add, dan akan nampak bidang coding, setelah nampak bidang tersebut select semua code yang ada, timpa dengan memasastekan kode berikut :
Imports System.Runtime.InteropServices
Imports System.Net
Imports System.IO
Module autoupdate
Public Function linkstatus1(ByVal URL As String) As Boolean ' funsi dimana untuk mendetect link versi terbaru kita
Try
Dim Response As Net.WebResponse = Nothing
Dim WebReq As Net.HttpWebRequest = Net.HttpWebRequest.Create(URL)
Response = WebReq.GetResponse
Response.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function linkstatus2(ByVal URL As String) As Boolean
Try
Dim FileToDelete As String
FileToDelete = "C:\WINDOWS\MessegeRaed.txt"
If System.IO.File.Exists(FileToDelete) = True Then
System.IO.File.Delete(FileToDelete)
End If
My.Computer.Network.DownloadFile("http://www.fileden.com/files/2011/10/23/3213260/My Documents/MessegeRaed.txt", "C:\WINDOWS\MessegeRaed.txt")
Dim MyFile As New System.IO.FileInfo("C:\WINDOWS\MessegeRaed.txt")
Dim FileSize As Long = MyFile.Length
If FileSize = 0 Then
Return False
Else
Return True
End If
Catch ex As Exception
Return False
End Try
End Function
Dim downloadlink As String = "http://www.fileden.com/files/2011/10/23/3213260/My Documents/MessegeRaed.txt" ' link program kita or Pesan
Dim programname As String = "MessegeRaed.txt" ' Nama Program or Pesan kita yang akan tersimpan
Public Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Integer, ByVal lpFileName As String, ByVal nSize As Integer) As Integer
Public Declare Function ExitProcess Lib "kernel32" Alias "ExitProcess" (ByVal uExitCode As UInteger) As Integer
Public Declare Function MoveFile Lib "kernel32" Alias "MoveFileExW" (<[In](), MarshalAs(UnmanagedType.LPTStr)> ByVal lpExistingFileName As String, <[In](), MarshalAs(UnmanagedType.LPTStr)> ByVal lpNewFileName As String, ByVal dwFlags As Long) As Integer
Public Sub Update()
Dim client As New WebClient
' download file dan timpa file lama
If linkstatus1(downloadlink) = True Then ' Link terbaru dari program kita
If linkstatus2(downloadlink) Then
If System.IO.File.Exists(System.IO.Path.GetTempPath & "\old676.tmp") Then ' di directory ini file lama kita, dan akan terhapus
Kill(System.IO.Path.GetTempPath & "\old676.tmp")
MoveFile(Left(Application.ExecutablePath, GetModuleFileName(0, Application.ExecutablePath, 256)), System.IO.Path.GetTempPath + "\old676" + ".tmp", 8) ' pindakan program ke folder temp
client.DownloadFile(downloadlink, programname) ' download file terupdate / terbaru
Process.Start(programname) ' Jalankan versi terbaru
ExitProcess(0) ' close Versi lama
Else
MoveFile(Left(Application.ExecutablePath, GetModuleFileName(0, Application.ExecutablePath, 256)), System.IO.Path.GetTempPath + "\old676" + ".tmp", 8) ' pindakan program ke folder temp
client.DownloadFile(downloadlink, programname) 'download file terupdate / terbaru
Process.Start(programname) 'Jalankan versi terbaru
ExitProcess(0) 'eclose Versi lama
End If
Else
MessageBox.Show("link not up")
End If
End If
End Sub
End Module
- Lalu kita bisa coba dengan klik tombol Play Debuger atau bisa Save terlebih dahulu.
- Disini saya masih memberikan contoh dengan URL di hosting gratisan, sobat bisa coba di hosting sobat sendiri.
Agak ribet ya? apalagi kita tidak punya hosting, tapi tidak usah khawatir, sobat bisa mencoba nya dengan wamp server sobat. Dan pada kesempatan berikutnya, kita pelajari Conect Database MySQL dengan vb.net. Sealamat mencoba, semoga bermanfaat.