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://www.DEK-GREAN.tk/update/dek-greanupdator.exe" 'ลิงค์ URL ไฟล์ที่จะทำการอัพเดต
Dim LocalPro As String = "C:\Users\oHm Ja\Desktop\New folder (2)\dek-greanupdator.exe" ' ตำแหน่งที่ตั้งของไฟล์ที่จะอัพเดต
Dim iniPro As String = Application.ProductVersion 'ตำแหน่งไฟล์ ver.ini เพื่อเช็คเลขเวอร์ชั่นของโปรแกรม
Dim iniServer As String = "http://www.DEK-GREAN.tk/ver.ini" 'URL ของไฟล์ ver.ini เพื่อเช็คเวอร์ชั่นใหม่
Dim Proname As String = "C:\Users\oHm Ja\Desktop\New folder (2)\dek-greanupdator.exe" 'โปรแกรมที่จะสั่งให้เปิดเมื่อัพเดตเสร็จ
Dim Proname2 As String = "DEK-GREAN.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_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)
'End Sub
Private Sub download_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 = (iniPro)
'อ่านเวอร์ชั่นที่ Server
Dim versionsite As String = webclient1.DownloadString(iniServer)
'ถ้าเวอร์ชั่นที่โปรแกรมกับ Server ไม่ตรงกัน
If versionsite <> versionpro Then
'ถ้าไม่ตรงให้เข้ามา Update
'เริ่มดาวโหลดไฟล์รูปแบบคือ (New Uri("ลิงค์ URL ไฟล์ที่จะทำการอัพเดต"), "ที่อยู่ไฟล์ที่จะเข้าไปแทนที่ ใส่ชื่อไฟล์ลงไปด้วย(")")
webclient2.DownloadFileAsync(New Uri(urlUpdate), LocalPro)
'webclient2.DownloadFileAsync(New Uri(urlUpdate), LocalPro)
'อัพเดตไฟล์ .ini
oWrite = New IO.StreamWriter(iniPro)
'เขียนไฟล์ ini ของโปรแกรมให้เท่ากับของ server
oWrite.Write(versionsite)
oWrite.Close()
Else
'ถ้าตรงไม่ต้อง
Label2.Text = "เวอร์ชั่นล่าสุดแล้ว"
Process.Start(Proname2)
End If
End Sub
End Class
Private Declare Function apiCopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal bFailIfExists As Integer) As Integer
Dim iRet = apiCopyFile("C:\A.Exe", "C:\A.Exe", 0)
Date :
2013-10-01 11:53:28
By :
ผ่านมา
No. 3
Guest
แต่แปลกดีนะ
เจ้าของกระทู้ไม่เคยเจอ WebClient Download/Upload Error 405 แสดงว่า Admin Server แจ๋วมากฯ