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

📄 frmmain.vb

📁 编程环境VB.NET2005 多线程下载
💻 VB
📖 第 1 页 / 共 2 页
字号:
                Dim p As Integer = dtData.savePathfilename.LastIndexOf("\")
                displayFilename = dtData.savePathfilename.Substring(p + 1, dtData.savePathfilename.Length - p - 1).Replace(".working", "")

                Dim per As String
                If dtData.Complete = "0" OrElse dtData.Length = "0" Then
                    per = "0%"
                End If

                If dtData.Length = "0" Then dtData.Length = ""
                Dim downtask As New MyDownloadTask
                downtask.MyTaskInfo = dtData
                AddHandler downtask.ShowDownTaskInfo, AddressOf Me.downTaskEvent
                Dim lvi As New ListViewItem(New String() {dtData.status.ToString, displayFilename, dtData.Length, dtData.Complete, downed.ToString, "", dtData.time.ToString, "", ""})
                lvi.Tag = downtask
                Me.ListView1.Items.Add(lvi)
            End While
        End Using
        If Me.ListView1.Items.Count >= 1 Then
            Me.ListView1.Focus()
            Me.ListView1.Items(Me.selectItemRecoder(selectShow)).Selected = True
        End If
    End Sub
    Function CalDownLenght(ByVal thdatastr As String) As Long
        Dim ret As Long
        Dim mmm As RegularExpressions.MatchCollection = RegularExpressions.Regex.Matches(thdatastr, "#\d+:\d+:\d+")
        For Each mm As System.Text.RegularExpressions.Match In mmm
            Dim mc As RegularExpressions.MatchCollection = RegularExpressions.Regex.Matches(mm.ToString, "(?<s>\d+):(?<n>\d+):(?<e>\d+)")
            For Each m As System.Text.RegularExpressions.Match In mc
                'Dim ts As New MyThreadStru
                'ts.startPos = CLng(m.Groups("s").ToString)
                'ts.nowPos = CLng(m.Groups("n").ToString)
                'ts.endPos = CLng(m.Groups("e").ToString)
                'Debug.WriteLine(ts.startPos.ToString & " " & ts.nowPos.ToString & " " & ts.endPos)
                ret += CLng(m.Groups("n").ToString) - CLng(m.Groups("s").ToString) + 0 'index to pos
            Next
        Next
        Return ret
    End Function
    Sub TaskStopProcessAll()
        For i As Integer = 0 To ListView1.Items.Count - 1
            Dim lvi As ListViewItem = CType(ListView1.Items(i), ListViewItem)
            'If lvi.Selected = True Then
            If lvi.SubItems(0).Text = "1" Then
                'For j As Integer = 1 To Me.workingTaskColl.Count
                '    If CType(Me.workingTaskColl.Item(j), MyDownloadTask).Equals(CType(lvi.Tag, MyDownloadTask)) Then
                '    End If
                'Next
                CType(lvi.Tag, MyDownloadTask).StopTask(lvi, i)
            End If
        Next
    End Sub
    Sub TaskStopProcessOne()
        For i As Integer = 0 To ListView1.Items.Count - 1
            Dim lvi As ListViewItem = CType(ListView1.Items(i), ListViewItem)
            If lvi.Selected = True Then
                CType(lvi.Tag, MyDownloadTask).StopTask(lvi, i)
            End If
        Next
    End Sub
    Public Sub downTaskEvent(ByVal sender As MyDownloadTask, ByVal lvi As ListViewItem, ByVal info As String)
        lvi.SubItems(0).Text = info
        If info = "10" Then
            Me.ListView1.Items.Remove(lvi)
        End If

        Exit Sub
        'For Each lvi As ListViewItem In Me.ListView1.Items
        '    If lvi.Tag.Equals(sender) Then
        '        lvi.SubItems.Item(0).Text = "完成"
        '    End If
        'Next

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.selectShow = 1
        L1.Text = CType(sender, Button).Text
        Me.LoadData(0, 1, 4, 7)
        Me.canUpdateInfo = True
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.selectShow = 2
        L1.Text = CType(sender, Button).Text
        Me.canUpdateInfo = False
        Me.LoadData(10)
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Me.selectShow = 3
        L1.Text = CType(sender, Button).Text
        Me.canUpdateInfo = False
        Me.LoadData(-1)
    End Sub
    Sub ShowInfo(ByVal dt As MyDownloadTask)
        Dim nl As String = "</br>" 'Microsoft.VisualBasic.ControlChars.NewLine
        Dim sb As New System.Text.StringBuilder
        sb.Append("<form>")
        sb.Append("下载链接:<a id=""url"" href=" & "" & dt.MyTaskInfo.downUrl & "" & ">" & dt.MyTaskInfo.downUrl & "</a>" & nl)
        sb.Append("引用地址:<a id=""refurl"" href=" & "" & dt.MyTaskInfo.refUrl & "" & ">" & dt.MyTaskInfo.refUrl & "</a>" & nl)
        '        sb.Append(dt.MyTaskInfo.downThreadAmount.ToString & nl)
        sb.Append("文件位置:<a id=""filepath"" href=" & "" & dt.MyTaskInfo.savePathfilename & "" & ">" & dt.MyTaskInfo.savePathfilename & "</a>" & nl)

        sb.Append("注释:" & nl & "<input id=""note"" style=""height: 200px; width: 300px""  type=""text"" value="" " & dt.MyTaskInfo.notetxt & """" & "/>" & nl)
        sb.Append("<input id=""save"" type=""button"" value=""保存"" " & "/>" & nl)
        sb.Append("</form>")
        Me.MyInfoShow1.DocumentText = sb.ToString
    End Sub
    Private Sub MyInfoShow1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles MyInfoShow1.DocumentCompleted
        Dim doc As HtmlDocument
        doc = Me.MyInfoShow1.Document
        Dim elem1 As HtmlElement = doc.All("url")
        Dim elem2 As HtmlElement = doc.All("refurl")
        Dim elem3 As HtmlElement = doc.All("filepath")
        Dim elem4 As HtmlElement = doc.All("note")
        Dim elem5 As HtmlElement = doc.All("save")
        If elem1 IsNot Nothing Then AddHandler elem1.Click, AddressOf fun1
        If elem2 IsNot Nothing Then AddHandler elem2.Click, AddressOf fun1
        If elem3 IsNot Nothing Then AddHandler elem3.Click, AddressOf fun1

        If elem1 IsNot Nothing Then AddHandler elem1.Drag, AddressOf ddd1
        If elem1 IsNot Nothing Then AddHandler elem1.DragEnd, AddressOf ddd2
        'If elem1 IsNot Nothing Then AddHandler elem1.DragLeave, AddressOf ddd
        'If elem1 IsNot Nothing Then AddHandler elem1.DragOver, AddressOf ddd
        If elem5 IsNot Nothing Then
            'elem5.AttachEventHandler("onclick", New EventHandler(AddressOf Me.fun3))
            AddHandler elem5.Click, AddressOf fun3
        End If
        Me.ListView1.Focus()

    End Sub
    Sub ddd1(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
        Dim he As HtmlElement = CType(sender, HtmlElement)
        Dim doc As HtmlDocument = Me.MyInfoShow1.Document
        Debug.WriteLine(he.InnerText & " drag")
    End Sub
    Sub ddd2(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
        Dim he As HtmlElement = CType(sender, HtmlElement)
        Debug.WriteLine("end " & he.InnerHtml)
    End Sub

    Sub fun1(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
        Dim he As HtmlElement = CType(sender, HtmlElement)
        Dim s As String = he.InnerText
        Dim p As New System.Diagnostics.Process
        If s.ToLower.StartsWith("http://") Then
            '            p = System.Diagnostics.Process.Start("IExplore.exe", s)
            My.Computer.Clipboard.SetText(s)
            MessageBox.Show("链接已复制到剪贴板", "信息", MessageBoxButtons.OK)
        Else
            Dim f As New IO.FileInfo(s)
            p = System.Diagnostics.Process.Start("Explorer.exe", f.DirectoryName)
        End If
        e.ReturnValue = False
    End Sub
    Sub fun3(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
        Dim doc As HtmlDocument
        doc = Me.MyInfoShow1.Document
        Dim elem4 As HtmlElement = doc.All("note")
        Me.currentTask.MyTaskInfo.notetxt = elem4.GetAttribute("value").ToString
        Using conn As New Data.OleDb.OleDbConnection(connStr)
            Dim com As New Data.OleDb.OleDbCommand("", conn)
            Dim comtext As String
            com.Parameters.Add("@note", OleDb.OleDbType.VarChar).Value = Me.currentTask.MyTaskInfo.notetxt
            comtext = "UPDATE 下载数据 SET NoteTxt=@note WHERE MD5='" & Me.currentTask.MyTaskInfo.md5 & "'"
            com.CommandText = comtext
            conn.Open()
            com.ExecuteNonQuery()
            com.Dispose()
        End Using
        MessageBox.Show("123", "456", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
    End Sub
End Class

⌨️ 快捷键说明

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