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

📄 frmmobileantmain.vb

📁 基于Windows Mobile平台的网络蚂蚁下载工具
💻 VB
📖 第 1 页 / 共 3 页
字号:
        '
        resources.ApplyResources(Me.T_stop, "T_stop")
        '
        'T_del
        '
        resources.ApplyResources(Me.T_del, "T_del")
        '
        'frmMobileAntMain
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi
        resources.ApplyResources(Me, "$this")
        Me.Controls.Add(Me.TextBox1)
        Me.Controls.Add(Me.ListView1)
        Me.Controls.Add(Me.ToolBar1)
        Me.Menu = Me.MainMenu1
        Me.Name = "frmMobileAntMain"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Dim CH_t As String = "请先选择任务!"

    Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Menuabout.Click
        MessageBox.Show("移动应用开发实战" & vbCrLf & "移动蚂蚁 MobileAnt 演示版", "MobileAnt Demo")
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Call Read_Start()
        Dim i, x As Int32
        For i = 0 To Rs.GetUpperBound(0)    '初始化down
            Rs(i) = New Down
        Next

        If AutoStartOnRun = 1 And JOBS.GetUpperBound(1) >= 0 Then
            i = 0 : x = 0
            Do
                If CInt((JOBS(RemoteFileSize, DISP(1, i)))) > CInt(JOBS(FileSizeOk, DISP(1, i))) Or CInt(JOBS(RemoteFileSize, DISP(1, i))) = 0 Then '任务没有完成。

                    Rs(x).inds = i
                    JOBS(State, DISP(1, i)) = ST_RUNNING
                    Rs(x).Start_down()
                    x += 1
                End If
                i += 1
                If x > Rs.GetUpperBound(0) Or i > JOBS.GetUpperBound(1) Then Exit Do
            Loop
        End If
        Timer1.Enabled = True
    End Sub

    Private Sub MUadd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MUadd.Click
        Dim addurl As New frmJobAdd
        Dim i As Int32
        Dim t As Int32

        addurl.INdirs.Text = SaveDir
        If addurl.ShowDialog = Windows.Forms.DialogResult.OK Then
            For t = 0 To DISP.GetUpperBound(1)  '过滤重复添加
                If addurl.URLS.Text = JOBS(URL, DISP(1, t)) Then
                    MessageBox.Show("当前地址已在下载列表中!", "MobileAnt Demo")
                    Exit Sub
                End If
            Next

            Dim x As Int32
            x = DISP.GetUpperBound(1) + 1
            ReDim Preserve DISP(1, x)
            i = JOBS.GetUpperBound(1) + 1
            ReDim Preserve JOBS(JOBS_C, i)     '最后一维加1
            DISP(0, x) = x : DISP(1, x) = i

            '使用文件名,使用ADDRESS
            Dim pos2 As Int32
            Dim nn As String
            JOBS(URL, i) = addurl.URLS.Text
            If addurl.INname.Text = "" Then '获得文件名。
                nn = addurl.URLS.Text
                If nn.ToUpper.Substring(nn.Length - 1, 1) = "/" Then
                    nn = nn.Substring(0, nn.Length - 1)
                End If
                pos2 = nn.LastIndexOf("/")
                nn = nn.Substring(pos2 + 1)
                pos2 = nn.IndexOf("?")
                If pos2 = -1 Then pos2 = nn.IndexOf("#")
                If nn = "" Then nn = "Index"
                If pos2 >= 0 Then
                    JOBS(FileName, i) = addurl.INdirs.Text & "\" & nn.Substring(0, pos2)
                Else
                    JOBS(FileName, i) = addurl.INdirs.Text & "\" & nn
                End If
                JOBS(RenameD, i) = 0
            Else
                JOBS(FileName, i) = addurl.INdirs.Text & "\" & addurl.INname.Text
                JOBS(RenameD, i) = 1
            End If
            If addurl.login.Checked Then
                JOBS(Login, i) = 1
                JOBS(UserName, i) = addurl.USERS.Text
                JOBS(PassWord, i) = addurl.PASS.Text
                JOBS(Domain, i) = addurl.DOM.Text
            Else
                JOBS(Login, i) = 0
                JOBS(UserName, i) = ""
                JOBS(PassWord, i) = ""
                JOBS(Domain, i) = ""
            End If
            JOBS(RemoteFileSize, i) = 0
            JOBS(FileSizeOk, i) = 0
            Dim ll As New ListViewItem(JOBS(FileName, i).Substring(JOBS(FileName, i).LastIndexOf("\") + 1))
            ll.SubItems.Add("0")    'remotefilesize
            ll.SubItems.Add("0")    'filesizeok
            ll.SubItems.Add("0")    'filesizeok/remotefilesize
            ListView1.Items.Add(ll)
            ll = Nothing
            '处理网页
            JOBS(CheckPage, i) = addurl.CheckPage.Checked

            For t = 0 To Rs.GetUpperBound(0)
                If Rs(t).inds = -1 Then
                    Rs(t).inds = DISP(1, x)
                    Rs(t).Start_down()
                    JOBS(State, DISP(1, x)) = 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
    End Sub

    Public Sub Read_Start()
        Dim jb(,) As String
        Dim i, x, y As Int32    'x 任务个数,y = FILE1 中的字段个数
        Dim tmp As String
        Dim filepath As String
        filepath = System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase   'GetName().CodeBase
        fls = System.IO.Path.GetDirectoryName(filepath) & "\" & fls
        If IO.File.Exists(fls) = False Then Call write_ini()

        i = GetIniValue(fls, "download", jb)
        If i <= 0 Then
            MessageBox.Show("配置文件错误!请修改或删除配置文件后再运行本程序。", "MobileAnt Demo")
            Application.Exit()
        End If
        '读出所有配置!!''''''''''''''''''''''''''''''''''''
        Try
            For i = 0 To i - 1
                Select Case jb(0, i).ToUpper
                    Case "SAVEDIR"
                        SaveDir = jb(1, i)
                        If SaveDir = "" Then Throw New System.Exception("文件保存位置错误!")
                    Case "ROLLBACK"
                        Rollback = CInt(jb(1, i))
                        If Rollback < 0 Then Throw New System.Exception("Rollback应当大于0!")
                    Case "COUNTS"
                        x = jb(1, i)    '任务个数。
                        If x < 0 Then Throw New System.Exception("任务个数不能为负数!")
                    Case "AUTOSTARTONRUN"
                        AutoStartOnRun = CInt(jb(1, i))
                        If Not (AutoStartOnRun = 0 Or AutoStartOnRun = 1) Then Throw New System.Exception("AutoStartOnRun必须为0(否)或1(是)!")
                    Case "RUNS"
                        Runs = CInt(jb(1, i))
                        If Runs <= 0 Then Throw New System.Exception("同时任务个数应当大于0!")
                    Case "AUTOSAVE"
                        AutoSave = CInt(jb(1, i))
                        If AutoSave <= 0 Then Throw New System.Exception("自动任务保存时间间隔应当大于0(秒),建议5-10分钟")
                    Case "TIME_OUT"
                        TIME_OUT = CInt(jb(1, i))
                        If TIME_OUT <= 0 Then Throw New System.Exception("HTTP响应等待时间应当大于0(毫秒)")
                    Case "AUTORESTART"
                        AutoRestart = CInt(jb(1, i))
                        If Not (AutoRestart = 0 Or AutoRestart = 1) Then Throw New System.Exception("AutoRestart 必须为1或0")
                    Case Else
                End Select
            Next i
        Catch ex As Exception
            MessageBox.Show("配置文件如下行配置错误:" & jb(0, i) & vbCrLf & ex.Message & vbCrLf & "应用程序将退出!", "MobileAnt Demo")
            Me.Close()
        End Try
        ReDim Rs(Runs - 1)

        ReDim JOBS(JOBS_C, x - 1) '
        ReDim DISP(1, x - 1)
        For x = 0 To x - 1
            y = GetIniValue(fls, "FILE" & (x + 1).ToString, jb)
            If y = -1 Then
                MessageBox.Show("配置文件错误!请修改配置文件后再运行本程序。" & vbCrLf & "应用程序将退出!", "MobileAnt Demo")
                Me.Close()
            End If
            DISP(0, x) = x : DISP(1, x) = x
            Try
                For y = 0 To y - 1
                    Select Case jb(0, y).ToUpper
                        Case "URL"
                            JOBS(URL, x) = jb(1, y)
                        Case "FILENAME"
                            JOBS(FileName, x) = jb(1, y)
                        Case "REMOTEFILESIZE"
                            JOBS(RemoteFileSize, x) = jb(1, y)
                        Case "FILESIZEOK"
                            JOBS(FileSizeOk, x) = jb(1, y)
                        Case "COOKIE"
                            JOBS(Cookie, x) = jb(1, y)
                        Case "LOGIN"
                            JOBS(Login, x) = jb(1, y)
                        Case "USERNAME"
                            JOBS(UserName, x) = jb(1, y)
                        Case "PASSWORD"
                            JOBS(PassWord, x) = jb(1, y)
                        Case "FTP_MODE"
                            JOBS(FTP_mode, x) = jb(1, y)
                        Case "RENAME"
                            JOBS(RenameD, x) = jb(1, y)
                        Case "DOMAIN"
                            JOBS(Domain, x) = jb(1, y)
                        Case Else
                            Stop
                    End Select
                Next
                If JOBS(RemoteFileSize, x) < 0 Or JOBS(FileSizeOk, x) < 0 Then
                    MessageBox.Show("配置文件以下配置错误:" & "FILE" & (x + 1).ToString, "MobileAnt Demo")
                    Application.Exit()
                End If
            Catch ex As Exception
                MessageBox.Show("配置文件如下行配置错误:" & jb(0, y) & vbCrLf & " 应用程序将退出!", "MobileAnt Demo")
                Application.Exit()
            End Try

            tmp = JOBS(FileName, x).Substring(JOBS(FileName, x).LastIndexOf("\") + 1)
            Dim ll As New ListViewItem(tmp)
            ll.SubItems.Add(Sizes(JOBS(RemoteFileSize, x)))
            ll.SubItems.Add(Sizes(JOBS(FileSizeOk, x)))
            '设置状态,图标
            If AutoStartOnRun = 1 Then
                JOBS(State, x) = ST_WAITRUN
            Else
                JOBS(State, x) = ST_STOP
            End If
            If JOBS(RemoteFileSize, x) >= 0 And CInt(JOBS(FileSizeOk, x)) > 0 Then '已经下载了一些数据。
                ll.SubItems.Add(Math.Round(JOBS(FileSizeOk, x) / JOBS(RemoteFileSize, x) * 100))
                If (CInt(JOBS(RemoteFileSize, x)) = CInt(JOBS(FileSizeOk, x))) Then   '下载完成
                    JOBS(State, x) = ST_OK_END
                End If
            ElseIf JOBS(RemoteFileSize, x) = 0 Then     '没有开始下载。
                ll.SubItems.Add("0")
            End If
            ListView1.Items.Add(ll)

            ll = Nothing
        Next
    End Sub

    Public Sub List_moveup(ByVal i As Int32)
        Dim xy As ListView.SelectedIndexCollection = ListView1.SelectedIndices()
        Dim a As IEnumerator = xy.GetEnumerator()

        a.MoveNext()
        Try
            i = a.Current
        Catch ex As System.InvalidOperationException
            MessageBox.Show(CH_t, "MobileAnt Demo")

            Exit Sub
        End Try

        'move up
        If i = 0 Then Exit Sub
        ListView1.Items.RemoveAt(i)
        ListView1.Items.Insert(i - 1, ListView1.Items.Item(i))
    End Sub

    Private Sub List_movedown(ByVal i As Int32)
        Dim xy As ListView.SelectedIndexCollection = ListView1.SelectedIndices()
        Dim a As IEnumerator = xy.GetEnumerator()
        'Dim i As Int32
        a.MoveNext()
        Try
            i = a.Current
        Catch ex As System.InvalidOperationException
            MessageBox.Show(CH_t, "MobileAnt Demo")

            Exit Sub
        End Try

        'move down
        If i = ListView1.Items.Count - 1 Then Exit Sub
        ListView1.Items.RemoveAt(i)
        ListView1.Items.Insert(i + 1, ListView1.Items.Item(i))
    End Sub

    Private Sub write_ini()
        Dim sr As IO.StreamWriter
        Try
            sr = New IO.StreamWriter(fls, False, System.Text.Encoding.Default)
        Catch ex As IO.IOException
            MessageBox.Show("配置文件无法保存!", "MobileAnt Demo")
            Exit Sub
        End Try
        sr.WriteLine("[Download]")
        sr.WriteLine(";无关项目写入后可能发生错误!")
        sr.WriteLine(";请关闭程序后再修改本配置文件!")
        sr.WriteLine("SaveDir=\temp   ;保存目录")
        sr.WriteLine("Rollback=100		;回滚若干字节。")
        sr.WriteLine("Counts=0	    	;总任务数")
        sr.WriteLine("AutoStartOnRun=1	;启动后开始下载")
        sr.WriteLine("Runs=2		    ;同时开始的任务。")
        sr.WriteLine("AutoSave=300  	;自动保存任务的时间间隔(秒),建议5分钟")
        sr.WriteLine("Time_Out=20000   ;http连接过时时间(毫秒)")
        sr.WriteLine("AutoRestart=1   ;下载没有完成,自动重新开始")
        sr.WriteLine()
        sr.WriteLine("[proxy]")

⌨️ 快捷键说明

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