建议查看MSDN,还有什么比它更完整
解决方案 »
- 用手指点一下屏幕上的一个按钮(类似银行ATM),需要什么设备才能实现?
- 肯请提供一些提供VB源码的下载站
- vb中单步执行应该用哪个键,谢谢!
- 各位大虾: 请问用VB什么函数怎样获得本地的计算机名和本地数据库的密码...在线等....
- 用inet控件连续执行多个FTP命令的问题
- AdoDb.Recordset
- vb中怎么使用C++编译的dll文件?
- vb老鸟们,帮小弟看看,这个怎么实现啊?????
- 高手请进,一个关于NtQueryInformationProcess 的应用!!!!!!!!!
- vb怎么提取代码中间的数字
- 高手请进来,关于FTP的WINDOWS API函数, 高难道挑战!
- 问高手,在线等待,vb中关于数据绑定
'## ##
'## FTPAPI声明 ##
'## ##
'########################################################################
Public Const ERROR_NO_MORE_FILES = 18
Public Const ERROR_INTERNET_EXTENDED_ERROR = 12003
Public Const FTP_TRANSFER_TYPE_BINARY = &H2
Public Const FTP_TRANSFER_TYPE_ASCII = &H1
Public Const INTERNET_FLAG_PASSIVE = &H8000000
Public Const INTERNET_FLAG_RELOAD = &H80000000
Public Const INTERNET_FLAG_KEEP_CONNECTION = &H400000
Public Const INTERNET_FLAG_MULTIPART = &H200000
Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_OPEN_TYPE_PROXY = 3
Public Const INTERNET_INVALID_PORT_NUMBER = 0
Public Const INTERNET_SERVICE_FTP = 1
Public Const INTERNET_SERVICE_GOPHER = 2
Public Const INTERNET_SERVICE_HTTP = 3Public Const MAX_PATH = 260
Public Const NO_ERROR = 0
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
Public Const FILE_ATTRIBUTE_OFFLINE = &H1000Public Const INTERNET_DEFAULT_FTP_PORT = 21
Public Const INTERNET_DEFAULT_GOPHER_PORT = 70
Public Const INTERNET_DEFAULT_HTTP_PORT = 80
Public Const INTERNET_DEFAULT_HTTPS_PORT = 443
Public Const INTERNET_DEFAULT_SOCKS_PORT = 1080
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End TypePublic Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
'连接FTP服务器的操作函数'打开连接internet的会话
Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
'sAgent--要调用internet对话的应用程序名
'lAccessType--请求的访问的类型,包括:
'INTERNET_OPEN_TYPE_PRECONFIG---预配置(缺省)
'INTERNET_OPEN_TYPE_DIRECT--直接指向internet
'INTERNET_OPEN_TYPE_PROXY--通过代理服务器连接
'sProxyName--如果lAccessType被设置为INTERNET_OPEN_TYPE_PROXY,该参数为
'代理服务器的名字
'sProxyBypass--包含一系列代理服务器地址的字符串
'lFlags--会话的选项,可包括下列值:
'INTERNET_FLAG_DONT_CACHE--不对数据进行本地缓冲或通过网关服务器缓冲
'INTERNET_FLAG_ASYNC--当操作完成时,将同INTERNET_STATUS_REQUEST_COMPLETE
'一起进行一个状态回调
'INTERNET_FLAG_OFFLINE--只通过永久缓冲进行下载操作'打开一个根据连接类型的Internet连接
Public Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _
(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _
ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
'hInternetSession--函数InternetOpen()打开Internet对话返回的值
'sServerName--要连接的服务器的名称或IP
'nServerPort--该连接的Internet端口
'sUsername--登录的用户帐号
'sPassword--登录的口令
'lService--要连接的服务器类型(这里是连接FTP服务器,连接的类型为常数INTERNET_SERVICE_FTP)'关闭Internet连接
Public Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer
'hInet--InternetConnect()函数返回的值'文件查找操作'在FTP连接中查找一个文件。在调用此函数后取得第一个文件后,可以接着调用FtpFindNextFile()
'获得下一个查到的FTP服务器上的文件。
Public Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _
(ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _
lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long
'lpszSearchFile--指向要搜索的文件名。可以通配符*.*的形式。
'lpFindFileData--用于装载与找到的文件有关的具体信息
'dwFlags--数据传输的方式,通常设置为0,(ASCII方式)'继续由FtpFindFirstFile()函数发起的文件搜索操作Public Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _
(ByVal hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long
'hFind--FtpFindFirstFile()函数的返回值
'lpvFindData--用于装载与找到的文件有关的具体信息'目录操作'改变FTP服务器的当前目录。
Public Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" _
(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
'lpszDirectory--包含要到达的目录名。可以是相对的或绝对的路径。'在ftp服务器上创建目录
Public Declare Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" _
(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
'lpszDirectory--包含要创建目录的字符串,可以是一个相对路径或绝对路径'取得ftp当前的目录的名字
Public Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" _
(ByVal hFtpSession As Long, lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Boolean
'lpszCurrentDirectory--存放目录名字的字符串
'lpdwCurrentDirectory--目录名字字符串的字节数'删除ftp服务器的一个目录
Public Declare Function FtpRemoveDirectory Lib "wininet.dll" Alias "FtpRemoveDirectoryA" _
(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
'lpszDirectory--要删除的目录名称,可以是相对路径或绝对路径'文件操作'从ftp服务器上取得一个文件并保存在本地机器上,此函数包括了与从一个FTP服务器中读取一个文件
'并在本地保存等操作有关的所有功能Public Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
'lpszRemoteFile--包含FTP服务器中要读的文件名
'lpszNewFile--在本地机器中要创建的文件名
'fFailIfExists--当为TRUE时,如果文件已经存在,则调用失败
'dwFlagsAndAttributes--文件的属性
'dwFlags--文件的传输方式可能包括下列值:
'FTP_TRANSFER_TYPE_ASCII--使用可以将控制和格式信息转换到本地对应文件的ASCII传输方式
'FTP_TRANSFER_TYPE_BINARY--使用把文件作为一个连续数据流传输的FTP图象传输方式,这种方式
'不区别在文件内部数据结构之间的任何分界(如行结束的回车标记)
'dwContext--要取回的文件的描述表标识符
'把一个文件上栽到FTP服务器上。其中包括了要将一个文件上载到FTP服务器上所有的有关操作Public Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" _
(ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _
ByVal lpszRemoteFile As String, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
'lpszLocalFile--要发送的文件名
'lpszRemoteFile--在FTP服务器上要创建的文件名
'dwFlags--文件的传输方式
'dwContext--要取回的文件的描述表标识符'在FTP服务器上打开一个文件以进行读或写操作Public Declare Function FtpOpenFile Lib "wininet.dll" Alias _
"FtpOpenFileA" (ByVal hFtpSession As Long, _
ByVal sFileName As String, ByVal lAccess As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
'sFileName--要打开的文件名
'lAccess--文件访问标记,可以是GENERIC_READ或GENERIC_WRITE
'lFlags--文件传输方式(文本或二进制)
'lContext--要打开的文件的描述表标识符'在FTP服务器上删除一个指定的文件
Public Declare Function FtpDeleteFile Lib "wininet.dll" _
Alias "FtpDeleteFileA" (ByVal hFtpSess
第二个问题中的lContext使用时是另一个过程产生的返回值.
这个过程是InternetSetStatusCallback,它的使用时指定一个加调过程,
在其它函数执行时加上它的返回值当参数,然后执行完成或失败时都调用那个
过程并返回执行状态,具体状态可参考INTERNET_STATUS_CALLBACK.
这个值与断点续传无关.