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:
|
Opzione esplicita
'egl1044
Const riservato BUF_SIZE = amplificatore di difetto 4096 '4KB per il ftp
Const riservato INVALID_HANDLE_VALUE = (- 1)
Const riservato OPEN_EXISTING = &H3&
Const riservato GENERIC_READ = &H80000000
Const riservato GENERIC_WRITE = &H40000000
Const riservato INTERNET_OPEN_TYPE_PRECONFIG = 0
Const riservato INTERNET_SERVICE_FTP = 1
Const riservato INTERNET_DEFAULT_FTP_PORT = 21
Const riservato FTP_TRANSFER_TYPE_UNKNOWN = 0
Riservato dichiarare il movimento di liberazione “kernel32„ di CreateFileW di funzione (lpFileName di ByVal come dwDesiredAccess di ByVal, lungamente come dwShareMode di ByVal, lungamente come lpSecurityAttributes di ByVal, lungamente come dwCreationDisposition di ByVal, lungamente come dwFlagsAndAttributes come lungamente, ByVal di ByVal, lungamente hTemplateFile come lungamente) come lungamente
Riservato dichiarare il movimento di liberazione “kernel32„ di ReadFile di funzione (ByVal hFile come lungamente, lpBuffer di ByVal come lungamente, nNumberOfBytesToRead di ByVal come lungamente, lpNumberOfBytesRead di ByRef come lungamente, ByVal lpOverlapped come lungamente) come lungamente
Riservato dichiarare il movimento di liberazione “kernel32„ di CloseHandle di funzione (hObject di ByVal come lungamente) come lungamente
Riservato dichiarare il movimento di liberazione “wininet„ di InternetOpenW di funzione (ByVal lpszAgent come dwAccessType di ByVal, lungamente come lpszProxyName di ByVal, lungamente come lpszProxyBypass di ByVal, lungamente come dwFlags di ByVal, lungamente come lungamente) come lungamente
Riservato dichiarare il movimento di liberazione “wininet„ di InternetConnectW di funzione (hInternetSession di ByVal come sServerName di ByVal, lungamente come nServerPort di ByVal, lungamente come sUsername di ByVal, lungamente come sPassword di ByVal, lungamente come lService di ByVal, lungamente come lFlags di ByVal, lungamente come lcontext di ByVal, lungamente come lungamente) come lungamente
Riservato dichiarare il movimento di liberazione “wininet„ di InternetWriteFile di funzione (ByVal hFile come lungamente, lpBuffer di ByVal come lungamente, dwNumberOfBytesToWrite di ByVal come lungamente, ByRef lpdwNumberOfBytesWritten come lungamente) come lungamente
Riservato dichiarare il movimento di liberazione “wininet„ di InternetCloseHandle di funzione (hInternet di ByVal come lungamente) come lungamente
Riservato dichiarare il movimento di liberazione “wininet„ di FtpOpenFileW di funzione (hConnect di ByVal come lpszFileName di ByVal, lungamente come dwAccess di ByVal, lungamente come dwFlags di ByVal, lungamente come dwContext di ByVal, lungamente come lungamente) come lungamente
Riservato dichiarare il movimento di liberazione “kernel32„ di GetFileSize di funzione (ByVal hFile come lpFileSizeHigh di ByRef, lungamente come lungamente) come lungamente
Oscurare l'amplificatore (BUF_SIZE) come byte
Oscurare i dwReadBytes come lungamente
Oscurare i dwWrittenBytes come lungamente
Fioco hOpen come lungamente
Oscurare il hConnect come lungamente
Oscurare il hInternet come lungamente
Oscurare hFile come lungamente
FtpPutFileEx secondario pubblico (_
szServer di ByVal come stringa, _
szUser di ByVal come stringa, _
szPassword di ByVal come stringa, _
ByVal szLocalFile come stringa, _
ByVal szServerFile come stringa)
dwStatus fioco come lungamente
Fioco dwLoFileSize come lungamente
Fioco dwHiFileSize come lungamente
Oscurare dwPercent come lungamente
'/init
hOpen = InternetOpenW (0, INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0)
'/collegar al ftp server
hConnect = InternetConnectW (hOpen, StrPtr (szServer), INTERNET_DEFAULT_FTP_PORT, StrPtr (szUser), StrPtr (szPassword), INTERNET_SERVICE_FTP, 0, 0)
Se hConnect = 0 allora
Pulizia
Debug.Print “InternetConnectW ()„ & Err.LastDllError
Uscire il sommergibile
Concluder se
'/ottenere la maniglia per il nome di schedario che sarà scritto al ftp server
hInternet = FtpOpenFileW (hConnect, StrPtr (szServerFile), GENERIC_WRITE, FTP_TRANSFER_TYPE_UNKNOWN, 0)
Se hInternet = 0 allora
Pulizia
Debug.Print “FtpOpenFile ()„ & Err.LastDllError
Uscire il sommergibile
Concluder se
'/convincere la maniglia per la lima locale per leggere i byte
hFile = CreateFileW (StrPtr (“\ \? \„ & szLocalFile), GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0)
Se hFile = INVALID_HANDLE_VALUE allora
Pulizia
Debug.Print “CreateFileW ()„ & Err.LastDllError
Uscire il sommergibile
Concluder se
'// ottiene il formato di lima locale per progresso. Supporti di questo esempio
' soltanto fino a 2GB di progresso di segnalazione di condizione.
dwLoFileSize = GetFileSize (hFile, dwHiFileSize)
'/leggere la lima locale, scrivono i byte della lima dell'assistente
Fare
Se ReadFile (hFile, VarPtr (amplificatore (0)), BUF_SIZE, dwReadBytes, 0) allora
Se InternetWriteFile (hInternet, VarPtr (amplificatore (0)), dwReadBytes, dwWrittenBytes) allora
'Seguire la quantità di byte scritti e di percentuale.
dwStatus = (dwStatus + dwWrittenBytes)
dwPercent = (dwStatus/dwLoFileSize) * 100
'Label1.Caption = dwPercent
Concluder se
Altrimenti
L'uscita fa
Concluder se
DoEvents
Collegare fino ai dwReadBytes = 0
Debug.Print “fatti„
'/pulizia
Pulizia
Amplificatore di Erase
Sommergibile dell'estremità
Pulizia secondaria riservata ()
Se allora <> hOpen 0
InternetCloseHandle hOpen
hOpen = 0
Concluder se
Se hConnect <> 0 allora
hConnect di InternetCloseHandle
hConnect = 0
Concluder se
Se hInternet <> 0 allora
hInternet di InternetCloseHandle
hInternet = 0
Concluder se
Se > 0 hFile allora
CloseHandle hFile
hFile = INVALID_HANDLE_VALUE
Concluder se
Concludere il sommergibile
|