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

📄 frmmain.vb

📁 编程环境VB.NET2005 多线程下载
💻 VB
📖 第 1 页 / 共 2 页
字号:
Imports System.Text
Public Class FrmMain
    Private Sub tsb_addnew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsb_addnew.Click
        Dim f As New frmMyAddNewDownLoad
        f.Show()
    End Sub
    Dim workingTaskColl As New Collection
    Dim currentTask As MyDownloadTask
    Dim trueDel As Boolean
    Friend canUpdateInfo As Boolean
    Private selectShow As Integer = 3
    Private selectItemRecoder(selectShow) As Integer
    Private Sub FrmMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        TaskStopProcessAll()
    End Sub
    Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        App.MainForm = Me
        Me.selectShow = 1
        Me.LoadData(0, 1, 4, 7)
        L1.Text = "下载队列"
        Me.canUpdateInfo = True
    End Sub
    Private Sub TaskStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TaskStart.Click
        For i As Integer = 0 To ListView1.Items.Count - 1
            Dim lvi As ListViewItem = CType(ListView1.Items(i), ListViewItem)
            If lvi.Selected = True Then
                 Me.workingTaskColl.Add(CType(lvi.Tag, MyDownloadTask))
                ' CType(lvi.Tag, MyDownloadTask).StartTask(lvi, i)
                CType(lvi.Tag, MyDownloadTask).StartTask(lvi)
                System.Threading.Thread.Sleep(50)
            End If
        Next
    End Sub
    Private Sub TaskStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TaskStop.Click
        TaskStopProcessOne()
    End Sub
    Private Sub TaskDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TaskDelete.Click
        If Me.trueDel = True Then
            If MessageBox.Show("true", "12345", MessageBoxButtons.OKCancel) = Windows.Forms.DialogResult.Cancel Then
                Me.trueDel = False
            End If
        End If

        For Each lvi As ListViewItem In ListView1.Items
            If lvi.Selected = True Then
                If Me.trueDel = True Then
                    Me.DeleteTrue(lvi)
                Else
                    Me.DeleteFalse(lvi)
                End If
            End If
        Next
        Me.MyInfoShow1.DocumentText = ""
        Me.infotxt2.Text = ""
    End Sub

    Private Sub TrackBar1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar1.ValueChanged
        Me.LabelTrack.Text = Me.TrackBar1.Value.ToString
        App.MySpeedLimit = Me.TrackBar1.Value
    End Sub
    Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        For i As Integer = 0 To Me.ListView1.Items.Count - 1
            If Me.ListView1.Items(i).Selected = True Then
                Me.selectItemRecoder(Me.selectShow) = i
            End If
        Next

        If Me.ListView1.SelectedItems.Count = 1 Then
            Dim dt As MyDownloadTask = CType(ListView1.SelectedItems.Item(0).Tag, MyDownloadTask)
            If currentTask Is Nothing Then
                currentTask = dt
            ElseIf currentTask.Equals(dt) = False Then
                currentTask.showDetail = False
                currentTask = dt
            End If
            currentTask.showDetail = True
            Me.ShowInfo(currentTask)
        End If

        Exit Sub

        For Each lvi As ListViewItem In Me.ListView1.Items
            '    Dim dt As MyDownloadTask = CType(lvi.Tag, MyDownloadTask)
            If lvi.Selected = True Then
                ' dt.showDetail = True
                ' Me.ShowInfo(dt)
            Else
                'dt.showDetail = False
            End If
        Next
    End Sub
    Sub DeleteTrue(ByVal sender As ListViewItem)
        Dim dt As MyDownloadTask = CType(sender.Tag, MyDownloadTask)
        Dim md5 As String = dt.MyTaskInfo.md5
        Using conn As New Data.OleDb.OleDbConnection(connStr)
            Dim com As New Data.OleDb.OleDbCommand("", conn)
            Dim comtext As String
            com.Parameters.Add("@md5", OleDb.OleDbType.VarChar).Value = md5
            comtext = "DELETE * FROM 下载数据 WHERE MD5=@md5"
            com.CommandText = comtext
            conn.Open()
            com.ExecuteNonQuery()
            com.Dispose()
        End Using
        Me.ListView1.Items.Remove(sender)

        Dim f As String = dt.MyTaskInfo.savePathfilename
        If My.Computer.FileSystem.FileExists(f) = True Then
            My.Computer.FileSystem.DeleteFile(f, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin)
        End If
    End Sub

    Sub DeleteFalse(ByVal sender As ListViewItem)
        Dim dt As MyDownloadTask = CType(sender.Tag, MyDownloadTask)
        Me.TaskStopProcessOne()
        Dim md5 As String = dt.MyTaskInfo.md5
        Using conn As New Data.OleDb.OleDbConnection(connStr)
            Dim com As New Data.OleDb.OleDbCommand("", conn)
            Dim comtext As String
            com.Parameters.Add("@status", OleDb.OleDbType.VarChar).Value = "-1"
            comtext = "UPDATE 下载数据 SET Status=@status WHERE MD5='" & dt.MyTaskInfo.md5 & "'"
            com.CommandText = comtext
            conn.Open()
            com.ExecuteNonQuery()
            com.Dispose()
        End Using
        Me.ListView1.Items.Remove(sender)
    End Sub
    Sub LoadData(ByVal status1 As Integer, Optional ByVal status2 As Integer = 100, Optional ByVal status3 As Integer = 100, Optional ByVal status4 As Integer = 100)
        If status1 = -1 OrElse status2 = -1 OrElse status3 = -1 OrElse status4 = -1 Then
            Me.trueDel = True
            TaskDelete.Text = "彻底删除"
        Else
            Me.trueDel = False
            TaskDelete.Text = "回收删除"
        End If
        Me.ListView1.Items.Clear()
        Using conn As New Data.OleDb.OleDbConnection(connStr)
            Dim com As New Data.OleDb.OleDbCommand("", conn)
            ' com.CommandText = "SELECT * FROM 下载数据 WHERE Status<>'-1'"
            com.Parameters.Add("@status1", OleDb.OleDbType.Integer).Value = status1
            com.Parameters.Add("@status2", OleDb.OleDbType.Integer).Value = status2
            com.Parameters.Add("@status3", OleDb.OleDbType.Integer).Value = status3
            com.Parameters.Add("@status4", OleDb.OleDbType.Integer).Value = status4
            com.CommandText = "SELECT * FROM 下载数据 WHERE Status=@status1 OR Status=@status2 OR Status=@status3 OR Status=@status4"
            conn.Open()
            Dim dr As OleDb.OleDbDataReader = com.ExecuteReader
            If dr.HasRows = False Then Exit Sub

            'Dim md5, status, filename, url, refurl, length, complete, tcount, thDataStr, note As String
            While dr.Read()
                Dim dtData As New MyDownTaskClass
                dtData.md5 = dr.Item("md5").ToString
                dtData.status = CInt(dr.Item("status"))
                dtData.savePathfilename = dr.Item("Filename").ToString()
                dtData.downUrl = dr.Item("URL").ToString
                dtData.refUrl = dr.Item("RefUrl").ToString
                dtData.Length = dr.Item("Length").ToString
                dtData.Complete = dr.Item("Complete").ToString
                dtData.downThreadAmount = CInt(dr.Item("ThreadCount"))
                dtData.time = CInt(dr.Item("UsedTime"))
                Dim downed As Long
                If dr.Item("Thread").GetType.ToString.ToLower <> "system.dbnull" Then
                    dtData.thData = CType(dr.Item("Thread"), Byte())
                    downed = Me.CalDownLenght(BinToStr(dtData.thData))
                Else
                    downed = 0
                End If

                dtData.notetxt = dr.Item("NoteTxt").ToString
                Dim displayFilename As String

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -