Imports System.Net
Imports System.IO
Public Class Form1
'สำหรับเช็คเวอร์ชั่น
WithEvents webclient1 As New WebClient
'สำหรับดาวโหลดไฟล์ Update
WithEvents webclient2 As New WebClient
Dim oWrite As IO.StreamWriter
'#################################Config#################################
Dim urlUpdate As String = "http://127.0.0.1/Update/TV-HD-Online.exe" 'ลิงค์ URL ไฟล์ที่จะทำการอัพเดต
Dim LocalPro As String = "C:TVHD-OnlineTV-HD-Online.exe" ' ตำแหน่งที่ตั้งของไฟล์ที่จะอัพเดต
Dim iniPro As String = "C:TVHD-Onlinever.ini" 'ตำแหน่งไฟล์ ver.ini เพื่อเช็คเลขเวอร์ชั่นของโปรแกรม
Dim iniServer As String = "http://127.0.0.1/Update/ver.ini" 'URL ของไฟล์ ver.ini เพื่อเช็คเวอร์ชั่นใหม่
Dim Proname As String = "TV-HD-Online.exe" 'โปรแกรมที่จะสั่งให้เปิดเมื่อัพเดตเสร็จ
'#############################################################################
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim chkIPaddress As New Threading.Thread(AddressOf chkUpdate)
CheckForIllegalCrossThreadCalls = False
chkIPaddress.Start()
End Sub
Private Sub webclient2_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles webclient2.DownloadProgressChanged
ProgressBar1.Maximum = e.TotalBytesToReceive
ProgressBar1.Value = e.BytesReceived
'แสดงเปอร์เซ็น
Label2.Text = e.ProgressPercentage & " %"
End Sub
Private Sub webclient2_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles webclient2.DownloadFileCompleted
' MsgBox("เสร็จ")
Process.Start(Proname)
Me.Close()
End Sub
Private Sub chkUpdate()
'อ่านเวอร์ชั่นที่โปรแกรม
Dim versionpro As String = webclient1.DownloadString(iniPro)
'อ่านเวอร์ชั่นที่ Server
Dim versionsite As String = webclient1.DownloadString(iniServer)
'ถ้าเวอร์ชั่นที่โปรแกรมกับ Server ไม่ตรงกัน
If versionsite <> versionpro Then
'ถ้าไม่ตรงให้เข้ามา Update
'เริ่มดาวโหลดไฟล์รูปแบบคือ (New Uri("ลิงค์ URL ไฟล์ที่จะทำการอัพเดต"), "ที่อยู่ไฟล์ที่จะเข้าไปแทนที่ ใส่ชื่อไฟล์ลงไปด้วย")
webclient2.DownloadFileAsync(New Uri(urlUpdate), LocalPro)
'อัพเดตไฟล์ .ini
oWrite = New IO.StreamWriter(iniPro)
'เขียนไฟล์ ini ของโปรแกรมให้เท่ากับของ server
oWrite.Write(versionsite)
oWrite.Close()
Else
'ถ้าตรงไม่ต้อง
Label2.Text = "เวอร์ชั่นล่าสุดแล้ว"
Process.Start(Proname)
Me.Close()
End If
End Sub
End Class
Tag : .NET, VS 2008 (.NET 3.x), VS 2010 (.NET 4.x)