在VFP5中映射网络驱动器
来源:优易学  2011-12-9 18:39:56   【优易学:中国教育考试门户网】   资料下载   IT书店

  在小型的办公自动化网络中,有时需要在程序中建立网络映射,来实现资源共享、文件传输等功能。VFP5本身并未提供类似函数,但我们可以利用Windows API函数来实现上述功能。Windows API函数中与建立网络映射有关的函数有以下两个:

  WNetAddConnection()建立网络映射;

  WNetCancelConnection()断开网络映射。

  下面分别对上述两个函数进行说明。

  WNetAddConnection()用来建立网络映射,它包含3个参数:

  LpszNetPath:字符串,要映射的网络路径名和共享名,如:“\\remotehost\sharedrv”;

  LpszPassword:字符串。共享资源的口令,由服务器端提供;

  LpszLocalName:字符串,即映射到本地的驱动器盘符,如:“F:”、“G:”。

  返回值:

  WN_SUCCESS=0&&成功

  WN_NOT_SUPPORTED=50&&函数不被支持

  WIN_OUT_OF_MEMORY=8&&系统内存不足

  WN_NET_ERROR=59&&网络发生错误

  WN_BAD_POINTER=487&&无效指针

  WN_BAD_NETNAME=67&&无效网络名

  WN_BAD_LOCALNAME=1200&&无效本地名

  WN_BAD_PASSWORD=86&&无效口令

  WN_ACCESS_DENIED=5&&访问被拒绝

  WN_ALREADY_CONNECTED=85&&此连接已经建立(重复建立)

  WNetCancelConnection()用来断开网络映射,它包含2个参数;

  LpszName:字符串,需断开的驱动器盘符。

  bForce:逻辑型,用LOGN数据类型表达。是否强行断开。

 返回值:

  WN_SUCCESS=0&&成功

  WN_NOT_SUPPORTED=50&&函数不被支持

  WN_OUT_OF_MEMORY=8&&系统内存不足

  WN_NET_ERROR=59&&网络发生错误

  WN_BAD_POINTER=487&&无效指针

  WN_BAD_VALUE=87&&网络名LpszName无效

  WN_NOT_CONNECTED=2250&&无须断开的连接

  WN_OPEN_FILES=2401&&需断开的连接中有打开的文件,则参数bForce被设为False。

  假设NT服务器ser_host中有一共享目录,(名为drive1)利用将服务器上的共享目录映射到本地(Win95/98),然后将本机器根目录下的config.sys文件传送到此目录下,断开连接。其中还用到一个拷贝文件的API函数:

  CopyFile(lpExistingFileName,lpNewFileName,bFailIfExists)

  参数含义为:

  lpExistingFileName(字符串),源文件名;

  lpNewFileName(字符串),目标文件名;

  bFailIfExists(逻辑型),如果目标文件已存在,是否返回错误信息;

  此函数返回0表示复制失败,1表示复制成功,源程序如下:

  FileName:Connect.prg

  Func:Remote File Copy

  set talk off

  set esca off

  Declare Long WNetAddConnection in ″mpr.dll″String lpszNetPath,String lpszPassword,String lpszLocalName &&声明API函数

  WNetAddCommection

  Declare Long WNetCancelConnection in″mpr.dll″ String lpszName,Long bForce &&声明API函数WNetCancelConnection

  Declare Long CopyFile in ″kernel32″ String lpExistingFileName,String lpNewFileName,Long bFailIfExists &&声明API函数CopyFile

  messagebox(str(WNetAddConnection(′xjserver\bak′,′g:′))) &&建立连接

  messagebox(str(CopyFile)(″c:\config.sys″,″g:\config.sys″,1))) &&拷贝文件,如果目录文件存在,则覆盖。

  messagebox(str(WNetCancelConnection(′g:′,1))) &&断开连接

  set esca on

  End Connect.prg

  程序中利用messagebox函数显示返回信息.

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训