标题:如何映射带有用户名和密码的网络驱动器再提问!
只看楼主
zhangheyuan
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2018-5-23
结帖率:85.71%
已结贴  问题点数:20 回复次数:4 
如何映射带有用户名和密码的网络驱动器再提问!
请问:高手:吹水佬  您的这个实例,能否改成在VFP6.0下也能够运行的代码吗?  怎样改呢?
   stNR = REPLICATE(0h00, 4);   这句VFP6.0 提示函数缺少括号!

局域网的示例:
DECLARE LONG StrDup                IN Shlwapi STRING@
 DECLARE LONG WNetAddConnection2    IN Mpr.dll STRING@, STRING@, STRING@, LONG
 DECLARE LONG WNetCancelConnection2 IN Mpr.dll STRING@, LONG, LONG

 IF _NetConnect("", "\\192.168.0.250\Test$", "UserName", "PassWord")
     USE \\192.168.0.250\Test$\temp.dbf
     BROWSE
     USE
     WNetCancelConnection2("\\192.168.0.250\Test$", 0, 1)
 ENDIF


 **
 ** 连接局域网共享文件夹
** szLocalName ... 影射到本地设备,如 X:,为空时不映射为盘符,空连接。
** szRemoteName .. 连接的远程设备,如 \\server\共享文件夹$
 **
FUNCTION _NetConnect(szLocalName, szRemoteName, szUserName, szPassWord)
     LOCAL stNR, ddRet, szMsg
     
     stNR = REPLICATE(0h00, 4);
          + BINTOC(1,  "4RS");
          + REPLICATE(0h00, 8);
          + BINTOC(StrDup(@szLocalName),  "4RS");
          + BINTOC(StrDup(@szRemoteName), "4RS");
          + REPLICATE(0h00, 8)

     ddRet = WNetAddConnection2(@stNR, @szPassWord, @szUserName, 1)
     
     IF ddRet == 1219    && 已经有连接,断开再连接。
        WNetCancelConnection2(@szRemoteName, 0, 1)
         ddRet = WNetAddConnection2(@stNR, @szPassWord, @szUserName, 1)
     ENDIF

     IF ddRet != 0
         szMsg = ICASE(ddRet == 5,    "找不到 "     + szRemoteName + " 设备",;
                       ddRet == 85,   "本地设备 "   + szLocalName  + " 已经连接",;
                       ddRet == 66,   "本地设备 "   + szLocalName  + " 类型不匹配",;
                       ddRet == 1200, "指定的设备 " + szLocalName  + " 名称无效",;
                       ddRet == 67,   "找不到 "     + szRemoteName + " 网络名称",;
                       ddRet == 1206, "调用WNetAddConnection2()的配置文件格式不正确",;
                       ddRet == 1204, "网络设备 "   + szRemoteName + " 名称无效",;
                       ddRet == 2202, "网络设备 "   + szUserName   + " 用户名无效",;
                       ddRet == 170,  "网络忙,请重试",;
                       ddRet == 1223, "连接被取消",;
                       ddRet == 1205, "调用WNetAddConnection2()无法打开用户配置文件",;
                       ddRet == 1202, "本地设备 "   + szLocalName  + " 与其他网络资源已经连接",;
                       ddRet == 1208, "发生网络错误,可用WNetGetLastError()函数获得错误信息。",;
                       ddRet == 487,  "资源结构的lpLocalName成员未指定 " + szLocalName,;
                       ddRet == 87,   "资源结构的dwtype成员参数不正确",;
                       ddRet == 86,   "用户名或密码无效",;
                       ddRet == 1326, "用户名或密码无效",;
                       ddRet == 1203, "网络设备 "   + szRemoteName + " 不被接受",;
                       ddRet == 1222, "网络不可用", "登录连接异常")
         MESSAGEBOX(szMsg, "提示")
     ENDIF

     RETURN (ddRet == 0)
 ENDFUNC
搜索更多相关主题的帖子: 用户名 网络 LONG 连接 设备 
2019-04-18 19:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
0h00相当于CHR(0),还有BINTOC()和ICASE()。
为何一定要用VFP6?
2019-04-18 20:52
zhangheyuan
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2018-5-23
得分:0 
我们好多电脑安装、使用的都是VFP6.0,本人原则是能用VFP6.0的就用6.0。哪位能能改写一下或替换一下 BINTOC() ? 本人对9.0不是很熟悉。
2019-04-19 22:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:20 
没装VFP6,试试看:
如:BINTOC(nVal, "4RS") 用 _UDWORD2C(nVal) 替换。

FUNCTION _UBYTE2C(dbValue)
    IF BETWEEN(dbValue, 0x00, 0xFF)
        RETURN CHR(dbValue)
    ENDIF
    MESSAGEBOX("调用 _UBYTE2C() 数值超出范围")
    RETURN NULL
ENDFUNC

FUNCTION _UDWORD2C(ddValue)
    IF BETWEEN(ddValue, 0x00000000, 0xFFFFFFFF)
        RETURN _UBYTE2C(          BITAND(ddValue, 0x000000FF)) +;
               _UBYTE2C(BITRSHIFT(BITAND(ddValue, 0x0000FF00),  8)) +;
               _UBYTE2C(BITRSHIFT(BITAND(ddValue, 0x00FF0000), 16)) +;
               _UBYTE2C(BITRSHIFT(BITAND(ddValue, 0xFF000000), 24))
    ENDIF
    MESSAGEBOX("调用 _UDWORD2C() 数值超出范围")
    RETURN NULL
ENDFUNC
2019-04-20 05:03
zhangheyuan
Rank: 1
等 级:新手上路
帖 子:74
专家分:4
注 册:2018-5-23
得分:0 
谢谢!可以运行,真是高手!崇拜!
2019-04-24 20:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494238-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.299375 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved