1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
|
Opção explícita
'egl1044
Const confidencial BUF_SIZE = amortecedor do defeito 4096 '4KB para o ftp
Const confidencial INVALID_HANDLE_VALUE = (- 1)
Const confidencial OPEN_EXISTING = &H3&
Const confidencial GENERIC_READ = &H80000000
Const confidencial GENERIC_WRITE = &H40000000
Const confidencial INTERNET_OPEN_TYPE_PRECONFIG = 0
Const confidencial INTERNET_SERVICE_FTP = 1
Const confidencial INTERNET_DEFAULT_FTP_PORT = 21
Const confidencial FTP_TRANSFER_TYPE_UNKNOWN = 0
Confidencial declarar o liberal “kernel32” de CreateFileW da função (lpFileName de ByVal como dwDesiredAccess por muito tempo, de ByVal como o dwShareMode por muito tempo, de ByVal como lpSecurityAttributes por muito tempo, de ByVal como o dwCreationDisposition por muito tempo, de ByVal como dwFlagsAndAttributes como por muito tempo, ByVal por muito tempo, de ByVal hTemplateFile como por muito tempo) como por muito tempo
Confidencial declarar o liberal “kernel32” de ReadFile da função (ByVal hFile como por muito tempo, lpBuffer de ByVal como por muito tempo, nNumberOfBytesToRead de ByVal como por muito tempo, lpNumberOfBytesRead de ByRef como por muito tempo, ByVal lpOverlapped como por muito tempo) como por muito tempo
Confidencial declarar o liberal “kernel32” de CloseHandle da função (hObject de ByVal como por muito tempo) como por muito tempo
Confidencial declarar o liberal “wininet” de InternetOpenW da função (ByVal lpszAgent como o dwAccessType por muito tempo, de ByVal como o lpszProxyName por muito tempo, de ByVal como lpszProxyBypass por muito tempo, de ByVal como dwFlags por muito tempo, de ByVal como por muito tempo) como por muito tempo
Confidencial declarar o liberal “wininet” de InternetConnectW da função (hInternetSession de ByVal como o sServerName por muito tempo, de ByVal como o nServerPort por muito tempo, de ByVal como o sUsername por muito tempo, de ByVal como o sPassword por muito tempo, de ByVal como o lService por muito tempo, de ByVal como lFlags por muito tempo, de ByVal como o lcontext por muito tempo, de ByVal como por muito tempo) como por muito tempo
Confidencial declarar o liberal “wininet” de InternetWriteFile da função (ByVal hFile como por muito tempo, lpBuffer de ByVal como por muito tempo, dwNumberOfBytesToWrite de ByVal como por muito tempo, ByRef lpdwNumberOfBytesWritten como por muito tempo) como por muito tempo
Confidencial declarar o liberal “wininet” de InternetCloseHandle da função (hInternet de ByVal como por muito tempo) como por muito tempo
Confidencial declarar o liberal “wininet” de FtpOpenFileW da função (hConnect de ByVal como o lpszFileName por muito tempo, de ByVal como dwAccess por muito tempo, de ByVal como dwFlags por muito tempo, de ByVal como o dwContext por muito tempo, de ByVal como por muito tempo) como por muito tempo
Confidencial declarar o liberal “kernel32” de GetFileSize da função (ByVal hFile como o lpFileSizeHigh por muito tempo, de ByRef como por muito tempo) como por muito tempo
Escurecer o amortecedor (BUF_SIZE) como o byte
Escurecer dwReadBytes como por muito tempo
Escurecer dwWrittenBytes como por muito tempo
Não ofuscante hOpen como por muito tempo
Escurecer o hConnect como por muito tempo
Escurecer o hInternet como por muito tempo
Escurecer hFile como por muito tempo
FtpPutFileEx secundário público (_
szServer de ByVal como a corda, _
szUser de ByVal como a corda, _
szPassword de ByVal como a corda, _
ByVal szLocalFile como a corda, _
ByVal szServerFile como a corda)
dwStatus não ofuscante como por muito tempo
Não ofuscante dwLoFileSize como por muito tempo
Não ofuscante dwHiFileSize como por muito tempo
Escurecer dwPercent como por muito tempo
'/init
hOpen = InternetOpenW (0, INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0)
'/conetar ao ftp server
hConnect = InternetConnectW (hOpen, StrPtr (szServer), INTERNET_DEFAULT_FTP_PORT, StrPtr (szUser), StrPtr (szPassword), INTERNET_SERVICE_FTP, 0, 0)
Se hConnect = 0 então
Limpeza
Debug.Print “InternetConnectW ()” & Err.LastDllError
Retirar o submarino
Terminar se
'/começ o punho para o nome de arquivo que será escrito ao ftp server
hInternet = FtpOpenFileW (hConnect, StrPtr (szServerFile), GENERIC_WRITE, FTP_TRANSFER_TYPE_UNKNOWN, 0)
Se hInternet = 0 então
Limpeza
Debug.Print “FtpOpenFile ()” & Err.LastDllError
Retirar o submarino
Terminar se
'/conseguir o punho para a lima local ler bytes
hFile = CreateFileW (StrPtr (“\ \? \” & szLocalFile), GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0)
Se hFile = INVALID_HANDLE_VALUE então
Limpeza
Debug.Print “CreateFileW ()” & Err.LastDllError
Retirar o submarino
Terminar se
'// começ o tamanho de lima local para o progresso. Sustentações deste exemplo
' somente até 2GB do progresso do relatório do status.
dwLoFileSize = GetFileSize (hFile, dwHiFileSize)
'/ler a lima local, escrevem bytes da lima do usuário
Fazer
Se ReadFile (hFile, VarPtr (amortecedor (0)), BUF_SIZE, dwReadBytes, 0) então
Se InternetWriteFile (hInternet, VarPtr (amortecedor (0)), dwReadBytes, dwWrittenBytes) então
'Seguir a quantidade de bytes escritos e de porcentagem.
dwStatus = (dwStatus + dwWrittenBytes)
dwPercent = (o dwStatus/dwLoFileSize) * 100
'Label1.Caption = dwPercent
Terminar se
Mais
A saída faz
Terminar se
DoEvents
Dar laços até dwReadBytes = 0
Debug.Print “feitos”
'/limpeza
Limpeza
Amortecedor do Erase
Submarino da extremidade
Limpeza secundária confidencial ()
Se hOpen <> 0 então
InternetCloseHandle hOpen
hOpen = 0
Terminar se
Se hConnect <> 0 então
hConnect de InternetCloseHandle
hConnect = 0
Terminar se
Se hInternet <> 0 então
hInternet de InternetCloseHandle
hInternet = 0
Terminar se
Se > 0 hFile então
CloseHandle hFile
hFile = INVALID_HANDLE_VALUE
Terminar se
Terminar o submarino
|