📄 frmmain.vb
字号:
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 + -