123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- Imports System.IO
- Imports System.Net
- Imports System.Threading.Tasks
- Public Class SYS_UPDATE
- ReadOnly ds2 As New DataSet
- Private Sub Set_清單1()
- FDT_dgv.DataSource = Nothing : ds2.Clear()
- FDT_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- FDT_dgv.ColumnHeadersHeight = 25
- FDT_dgv.AllowUserToAddRows = False
- SQL_FTP資料夾路徑分配()
- da.Fill(ds2) : FDT_dgv.DataSource = ds2.Tables(0) : conn.Close()
- End Sub
- Private Sub SYS_UPDATE_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- '-----------------------寫入連線字串-----------------------------------------------------------------------------------------------------------------------------------------------
- 資料數 = 17
- MyModule1.進度條() : 登入人IP = "180.177.181.162,5264"
- MyModule1.進度條() : SQL_連線字串_ERP()
- MyModule1.進度條() : 伺服器區域_cb.Text = "180.177.181.162,5264"
- MyModule1.進度條() : g_conn_type = 伺服器區域_cb.Text & "伺服器"
- '-----------------------系統版本號寫入-----------------------------------------------------------------------------------------------------------------------------------------------
- MyModule1.進度條() : SQL_版本號()
- MyModule1.進度條() : If dr.Read() Then : 版本號 = dr("系統認證版本號") : End If : conn.Close()
- '-----------------------FTP資料夾登入位置宣告--------------------------------------------------------------------------------------------------------------------------------------
- MyModule1.進度條() : SQL_FTP伺服器登入位置()
- MyModule1.進度條() : If dr.Read() Then : Target = dr("FTP地址") : FTP帳號 = dr("FTP帳號") : FTP密碼 = dr("FTP密碼") : End If : conn.Close()
- MyModule1.進度條() : Set_清單1()
- MyModule1.進度條() : Dim HH As String = ""
- For i As Integer = 0 To FDT_dgv.Rows.Count - 1
- If i < 10 Then : HH = "0" & i : ElseIf i >= 10 Then : HH = i : End If
- If FDT_dgv("指定", i).Value.ToString = "AA" & HH Then : AA(i) = FDT_dgv("資料夾名稱", i).Value.ToString : End If
- Next
- MyModule1.進度條() : Target1 = Target & AA(0) & "/"
- End Sub
- Private Async Sub SYS_UPDATE_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
- MyModule1.進度條() : Delay(30000)
- MyModule1.進度條() : Dim Str As String = Application.StartupPath
- MyModule1.進度條() : If File.Exists(Str + "\BIFENG-ERP-SYS.exe") Then : File.Delete(Str + "\BIFENG-ERP-SYS.exe") : End If
- 'MyModule1.進度條() : My.Computer.Network.DownloadFile(Target & AA(1) & "/" & "BIFENG-ERP-SYS.exe", Str + "\BIFENG-ERP-SYS.exe")
- Dim downloadUrl As String = Target & AA(1) & "/" & "BIFENG-ERP-SYS.exe"
- Dim savePath As String = Str + "\BIFENG-ERP-SYS.exe"
-
- ' 開始異步下載
- Await DownloadFileAsync(downloadUrl, savePath)
- MyModule1.進度條() : Shell(Str + "\BIFENG-ERP-SYS.exe", vbNormalFocus)
- Me.Close()
- End Sub
- Private WithEvents downloader As New WebClient()
- Private Async Function DownloadFileAsync(downloadUrl As String, savePath As String) As Task
- Try
- ' 使用異步方式下載檔案
- Await downloader.DownloadFileTaskAsync(New Uri(downloadUrl), savePath)
- ' 下載完成後的處理
- MessageBox.Show("下載完成!")
- Catch ex As Exception
- MessageBox.Show($"下載失敗: {ex.Message}")
- End Try
- End Function
- Public Sub Delay(ByRef Interval As Double) 'Interval单位为毫秒
- Dim time As DateTime = DateTime.Now
- Dim Span As Double = Interval * 1234
- While ((DateTime.Now.Ticks - time.Ticks) < Span)
- Application.DoEvents()
- End While
- End Sub
- End Class
|