⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmobileantmain.vb

📁 基于Windows Mobile平台的网络蚂蚁下载工具
💻 VB
📖 第 1 页 / 共 3 页
字号:
        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 + -