📄 frmmobileantmain.vb
字号:
sr.Close()
End Sub
Private Sub MUstart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MUstart.Click, MU_start.Click
Dim xy As ListView.SelectedIndexCollection = ListView1.SelectedIndices()
Dim a As IEnumerator = xy.GetEnumerator()
Dim i As Int32
Try
a.Reset()
For i = 0 To xy.Count - 1
a.MoveNext()
If JOBS(State, DISP(1, a.Current)) <> ST_RUNNING And JOBS(State, DISP(1, a.Current)) <> ST_OK_END Then
JOBS(State, DISP(1, a.Current)) = ST_WAITRUN
End If
Next
Catch ex As System.InvalidOperationException
MessageBox.Show(CH_t, "MobileAnt Demo")
Exit Sub
End Try
End Sub
Private Sub Mu_log_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mu_log.Click
Mu_log.Checked = Not Mu_log.Checked
If Mu_log.Checked = True Then
TextBox1.Visible = True
ListView1.Height -= TextBox1.Height
Else
TextBox1.Visible = False
ListView1.Height += TextBox1.Height
End If
End Sub
Private Sub MUsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MUsave.Click
Dim sr As IO.StreamWriter
Try
sr = New IO.StreamWriter(fls, False, System.Text.Encoding.Default)
sr.WriteLine("[Download]")
sr.WriteLine(";无关项目写入后可能发生错误!")
sr.WriteLine(";请关闭程序后再修改本配置文件!")
sr.WriteLine("SaveDir=" & SaveDir & " ;保存目录")
sr.WriteLine("Rollback=" & Rollback & " ;回滚若干字节。")
sr.WriteLine("Counts=" & DISP.GetUpperBound(1) + 1 & " ;总任务数")
sr.WriteLine("AutoStartOnRun=" & AutoStartOnRun & " ;启动后开始下载")
sr.WriteLine("Runs=" & Runs & " ;同时开始的任务。")
sr.WriteLine("AutoSave=" & AutoSave & " ;自动保存任务的时间间隔(秒)")
sr.WriteLine("Time_Out=" & TIME_OUT & " ;http连接超时时间(毫秒)")
sr.WriteLine("AutoRestart=" & AutoRestart & " ;下载没有完成,自动重新开始")
sr.WriteLine()
sr.WriteLine("[proxy]")
sr.WriteLine()
Dim i As Int32
For i = 0 To DISP.GetUpperBound(1)
sr.WriteLine("[file" & (i + 1) & "]")
sr.WriteLine("FileName=" & JOBS(FileName, DISP(1, i)))
sr.WriteLine("RemoteFileSize=" & JOBS(RemoteFileSize, DISP(1, i)))
sr.WriteLine("FileSizeOk=" & JOBS(FileSizeOk, DISP(1, i)))
sr.WriteLine("URL=" & JOBS(URL, DISP(1, i)))
sr.WriteLine("Cookie=" & JOBS(Cookie, DISP(1, i)))
sr.WriteLine("Login=" & JOBS(Login, DISP(1, i)))
sr.WriteLine("UserName=" & JOBS(UserName, DISP(1, i)))
sr.WriteLine("PassWord=" & JOBS(PassWord, DISP(1, i)))
sr.WriteLine("Domain=" & JOBS(Domain, DISP(1, i)))
sr.WriteLine("FTP_mode=" & JOBS(FTP_mode, DISP(1, i)) & " ;1=bin,0=asc")
sr.WriteLine("Rename=" & JOBS(RenameD, DISP(1, i)))
sr.WriteLine()
Next
Catch ex As IO.IOException
MessageBox.Show("配置文件保存错误!" & vbCrLf & ex.Message, "MobileAnt Demo")
Exit Sub
End Try
sr.Close()
End Sub
Private Sub MU_delete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MU_delete.Click, MUdel.Click
Dim xy As ListView.SelectedIndexCollection = ListView1.SelectedIndices()
Dim a As IEnumerator = xy.GetEnumerator()
Dim i As Int32
a.Reset()
Try
a.MoveNext()
i = DISP(1, a.Current)
If JOBS(State, i) <> ST_RUNNING Then
If CInt(JOBS(RemoteFileSize, i)) > CInt(JOBS(FileSizeOk, i)) Or JOBS(RemoteFileSize, i) = 0 Then
If MessageBox.Show("运行的项目不会删除!" & vbCrLf & "确实要删除这些项吗?", "删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.No Then Exit Sub
End If
i = a.Current
ListView1.Items.RemoveAt(i)
While i < DISP.GetUpperBound(1) '性能优化
DISP(0, i) = DISP(0, i + 1)
DISP(1, i) = DISP(1, i + 1)
i = i + 1
End While
ReDim Preserve DISP(1, DISP.GetUpperBound(1) - 1)
TextBox1.Text = ""
End If
Catch ex As Exception
MessageBox.Show(CH_t, "MobileAnt Demo")
Exit Sub
End Try
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim i As Int32
Static Dim y As Long = Microsoft.VisualBasic.DateAndTime.Timer
If Microsoft.VisualBasic.DateAndTime.Timer - y > AutoSave Or Microsoft.VisualBasic.DateAndTime.Timer - y < 0 Then
y = Microsoft.VisualBasic.DateAndTime.Timer
Call MUsave_Click(sender, e)
End If
Dim t As Int32
For i = 0 To DISP.GetUpperBound(1)
If JOBS(State, DISP(1, i)) = ST_WAITRUN And t <= Rs.GetUpperBound(0) Then
For t = 0 To Rs.GetUpperBound(0)
If Rs(t).inds = -1 Then
Rs(t).inds = DISP(1, i)
Rs(t).Start_down()
JOBS(State, DISP(1, i)) = ST_RUNNING
Exit For
End If
Next t
If t > Rs.GetUpperBound(0) Then
JOBS(State, DISP(1, i)) = ST_WAITRUN
End If
End If
Next
If Form1active = True Then Call REFlistview()
End Sub
Private Sub MUexit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MUexit.Click
Me.Close()
End Sub
Private Sub REFlistview()
Dim i As Int32
Dim d As Int32
For i = 0 To DISP.GetUpperBound(1)
d = DISP(1, i)
Select Case JOBS(State, d)
Case ST_ERROR
ListView1.Items(i).ImageIndex = ICO_ERROR
Case ST_OK_END
ListView1.Items(i).ImageIndex = ICO_OK
Case ST_RUNNING
ListView1.Items(i).ImageIndex = ICO_RUN
Case ST_WAITRUN
ListView1.Items(i).ImageIndex = ICO_WAITRUN
Case ST_STOP
ListView1.Items(i).ImageIndex = ICO_STOP
Case 0
Stop
End Select
If JOBS(RenameD, d) = 1 Then ListView1.Items(i).SubItems.Item(0).Text = GetName(JOBS(FileName, d))
If ListView1.Items(i).Selected And TextBox1.Visible = True Then TextBox1.Text = JOBS(logs, d)
If JOBS(State, d) = ST_ERROR Then GoTo NEXT_i
Try
If CInt(ListView1.Items(i).SubItems.Item(3).Text) < 100 Or ListView1.Items(i).SubItems.Item(2).Text <> CStr(0) Then
If Char.IsNumber(JOBS(RemoteFileSize, d)) Then
ListView1.Items(i).SubItems.Item(1).Text = Sizes(JOBS(RemoteFileSize, d))
If JOBS(RemoteFileSize, d) > 0 Then
ListView1.Items(i).SubItems.Item(3).Text = Math.Round(CInt(JOBS(FileSizeOk, d)) / CInt(JOBS(RemoteFileSize, d)) * 100).ToString
Else
ListView1.Items(i).SubItems.Item(3).Text = 0
End If
Else
ListView1.Items(i).SubItems.Item(1).Text = JOBS(RemoteFileSize, d)
End If
ListView1.Items(i).SubItems.Item(2).Text = Sizes(JOBS(FileSizeOk, d))
End If
Catch ex As Exception
End Try
NEXT_i:
Next
End Sub
Private Sub Form1_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate
Form1active = False
End Sub
Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
Form1active = True
End Sub
Private Sub MU_stop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MU_stop.Click, MUstop.Click
Dim xy As ListView.SelectedIndexCollection = ListView1.SelectedIndices()
Dim a As IEnumerator = xy.GetEnumerator()
Dim i As Int32
Dim x As Int32
Try
For x = 0 To xy.Count - 1
a.MoveNext()
i = a.Current
i = DISP(1, i)
If JOBS(State, i) = ST_RUNNING Then
Dim t As Int32
JOBS(State, i) = ST_STOP
For t = 0 To Rs.GetUpperBound(0)
If Rs(t).inds = i Then
Rs(t).Stop_down()
Exit For
End If
Next t
ElseIf JOBS(State, i) = ST_WAITRUN Then
JOBS(State, i) = ST_STOP
End If
Next
Catch ex As Exception
MessageBox.Show(CH_t, "MobileAnt Demo")
Exit Sub
End Try
End Sub
Private Sub MU_p_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MU_p.Click
Dim xy As ListView.SelectedIndexCollection = ListView1.SelectedIndices()
Dim a As IEnumerator = xy.GetEnumerator()
Dim i As Int32
Try
If xy.Count = 0 Then Throw New Exception
a.MoveNext()
i = a.Current
Catch ex As Exception
MessageBox.Show(CH_t, "MobileAnt Demo")
Exit Sub
End Try
Dim pro As New frmJobAdd
pro.URLS.ReadOnly = True
pro.URLS.Text = JOBS(URL, i)
pro.INname.Text = JOBS(FileName, i).Substring(JOBS(FileName, i).LastIndexOf("\") + 1)
'pro.INdirs.Enabled = False
pro.INdirs.Text = JOBS(FileName, i).Substring(0, JOBS(FileName, i).LastIndexOf("\"))
pro.INdirs.ReadOnly = True
pro.C_DIR.Enabled = False
pro.USERS.Text = JOBS(UserName, i)
pro.PASS.Text = JOBS(PassWord, i)
pro.DOM.Text = JOBS(Domain, i)
pro.login.Checked = JOBS(Login, i)
If JOBS(FileSizeOk, i) > 0 Then pro.INname.ReadOnly = True
If JOBS(FileSizeOk, i) = JOBS(RemoteFileSize, i) And JOBS(FileSizeOk, i) > 0 Then pro.login.Enabled = False
If pro.ShowDialog = Windows.Forms.DialogResult.OK Then
If JOBS(FileSizeOk, i) = 0 Then JOBS(FileName, i) = pro.INname.Text
If pro.login.Checked = True Then
JOBS(Login, i) = 1
JOBS(UserName, i) = pro.USERS.Text
JOBS(PassWord, i) = pro.PASS.Text
JOBS(Domain, i) = pro.DOM.Text
Else
JOBS(Login, i) = 0
JOBS(UserName, i) = ""
JOBS(PassWord, i) = ""
JOBS(Domain, i) = ""
End If
End If
End Sub
Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
Select Case ToolBar1.Buttons.IndexOf(e.Button)
Case 0 'add
Call MUadd_Click(sender, e)
Case 1 'start
Call MUstart_Click(sender, e)
Case 2 'stop
Call MU_stop_Click(sender, e)
Case 3 'del
Call MU_delete_Click(sender, e)
Case Else
End Select
End Sub
Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
Call MUsave_Click(MUsave, e)
End Sub
Private Sub MUreStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MUreStart.Click
Dim xy As ListView.SelectedIndexCollection = ListView1.SelectedIndices()
Dim a As IEnumerator = xy.GetEnumerator()
Dim i As Int32
a.MoveNext()
Try
If xy.Count = 0 Then Throw New System.InvalidOperationException
i = a.Current
Catch ex As System.InvalidOperationException
MessageBox.Show(CH_t, "MobileAnt Demo")
Exit Sub
End Try
If JOBS(State, i) <> ST_RUNNING Then
JOBS(RemoteFileSize, i) = 0
JOBS(FileSizeOk, i) = 0
JOBS(State, i) = ST_WAITRUN
Try
If IO.File.Exists(JOBS(FileName, i)) Then IO.File.Delete(JOBS(FileName, i))
Catch ex As Exception
MessageBox.Show("无法删除旧文件!", "MobileAnt Demo")
Exit Sub
End Try
Call MUstart_Click(sender, e)
Else
MessageBox.Show("请先停止运行,然后再重新开始", "MobileAnt Demo")
End If
End Sub
Private Sub startall_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MU_STARTall.Click
Dim i As Int32
For i = 0 To DISP.GetUpperBound(1)
If JOBS(State, DISP(1, i)) <> ST_RUNNING And JOBS(State, DISP(1, i)) <> ST_OK_END Then
JOBS(State, DISP(1, i)) = ST_WAITRUN
End If
Next
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -