?? moddown.bas
字號:
Attribute VB_Name = "ModDown"
Option Explicit
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
'定義保存下載任務信息的類型
Public Type DownInfo
mIndex As Integer '位置索引
mUrl As String '地址
mFile As String '文件名
mSize As Long '文件的大小
mGetSize As Long '已獲得的字節數
mUseProxy As Boolean '是否使用proxy
mProxy As String '使用的代理服務器地址
mProxyPort As Integer '代理服務器端口
mProxyId As String '代理服務器的用戶名
mProxyPass As String '代理服務器的密碼
End Type
'用于把下載任務信息讀寫到隨機文件的類型
Public Type DownInfoSave
mIndex As Integer '位置索引
mUrl As String * 180 '地址
mFile As String * 50 '文件名
mSize As Long '文件的大小
mGetSize As Long '已獲得的字節數
mUseProxy As Boolean '是否使用proxy
mProxy As String * 50 '使用的代理服務器地址
mProxyPort As Integer '代理服務器端口
mProxyId As String * 20 '代理服務器的用戶名
mProxyPass As String * 20 '代理服務器的密碼
End Type
'記錄每個下載任務信息的變量數組
Public mDownInfo() As DownInfo
'當前正在下載的任務的索引
Public CurrentDown(3) As Integer
'當前在ListView中選擇的任務的索引
Public SelectDown As Integer
'Base64編碼函數:Base64Encode
'Instr1 編碼前字符串
'Outstr1 編碼后字符串
Public Function Base64Encode(InStr1 As String, OutStr1 As String)
Dim mInByte(3) As Byte, mOutByte(4) As Byte
Dim myByte As Byte
Dim i As Integer, LenArray As Integer, j As Integer
Dim myBArray() As Byte
myBArray() = StrConv(InStr1, vbFromUnicode)
LenArray = UBound(myBArray) + 1
For i = 0 To LenArray Step 3
If LenArray - i = 0 Then
Exit For
End If
If LenArray - i = 2 Then
mInByte(0) = myBArray(i)
mInByte(1) = myBArray(i + 1)
Base64EncodeByte mInByte, mOutByte, 2
ElseIf LenArray - i = 1 Then
mInByte(0) = myBArray(i)
Base64EncodeByte mInByte, mOutByte, 1
Else
mInByte(0) = myBArray(i)
mInByte(1) = myBArray(i + 1)
mInByte(2) = myBArray(i + 2)
Base64EncodeByte mInByte, mOutByte, 3
End If
For j = 0 To 3
OutStr1 = OutStr1 & Chr(mOutByte(j))
Next j
Next i
End Function
Private Sub Base64EncodeByte(mInByte() As Byte, mOutByte() As Byte, Num As Integer)
Dim tByte As Byte
Dim i As Integer
If Num = 1 Then
mInByte(1) = 0
mInByte(2) = 0
ElseIf Num = 2 Then
mInByte(2) = 0
End If
tByte = mInByte(0) And &HFC
mOutByte(0) = tByte / 4
tByte = ((mInByte(0) And &H3) * 16) + (mInByte(1) And &HF0) / 16
mOutByte(1) = tByte
tByte = ((mInByte(1) And &HF) * 4) + ((mInByte(2) And &HC0) / 64)
mOutByte(2) = tByte
tByte = (mInByte(2) And &H3F)
mOutByte(3) = tByte
For i = 0 To 3
If mOutByte(i) >= 0 And mOutByte(i) <= 25 Then
mOutByte(i) = mOutByte(i) + Asc("A")
ElseIf mOutByte(i) >= 26 And mOutByte(i) <= 51 Then
mOutByte(i) = mOutByte(i) - 26 + Asc("a")
ElseIf mOutByte(i) >= 52 And mOutByte(i) <= 61 Then
mOutByte(i) = mOutByte(i) - 52 + Asc("0")
ElseIf mOutByte(i) = 62 Then
mOutByte(i) = Asc("+")
Else
mOutByte(i) = Asc("/")
End If
Next i
If Num = 1 Then
mOutByte(2) = Asc("=")
mOutByte(3) = Asc("=")
ElseIf Num = 2 Then
mOutByte(3) = Asc("=")
End If
End Sub
'編碼函數:EncodeStr
'Str1 編碼前字符串
'返回值 編碼后字符串
Public Function EncodeStr(Str1 As String) As String
Dim OutStr1 As String
Call Base64Encode(Str1, OutStr1)
EncodeStr = OutStr1
End Function
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -