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