use局域网文件问题
以前用"use+ iP+文件名"语句,打开局网服务器上的共享文件没有问题,可公司统一装了360天擎后,XP系统的机子用"use+ iP+文件名"语句打开实际存在的网络文件时总是不稳定,有时报错(文件不存在),WIN7系统就没有这个问题,我已经试过在XP的机子装IPV6协议,也没有效果,请教...
2017-02-21 11:49
2017-02-21 14:36
2017-02-22 08:38
2017-02-22 15:40
2017-02-22 18:21
2017-02-23 07:13
2017-02-23 08:20
2017-02-23 15:17
程序代码:*------------------------------------------------------------------------
* 功 能 登录服务器共享目录并且不映射为盘符
* 调用方法 共享目录路径;用户名;密码 返回值为0表示成功
* 注意事项: 因为Win98不能换名登录,不成功也返回0,所以还要用DIRECTORY()判断
* 日 期: yxgzs于2004年11月
*------------------------------------------------------------------------
LPARAMETERS lcUncPath, lcUserName, lcPassWord
lcUncPath='\\172.16.0.240\lkySICS'
lcUserName='administartor'
lcPassWord='administartor'
clear dlls
Declare Integer WNetAddConnection2 In Win32Api STRING @ lpNetResource,STRING lpPassword,STRING lpUsername,INTEGER dwFlags
Declare Integer WNetCancelConnection2 In Win32Api STRING @ lpNetResource,Long , Long
Declare Integer GlobalAlloc IN kernel32 INTEGER, INTEGER
Declare RtlMoveMemory IN kernel32 As Str2Heap INTEGER, STRING @, INTEGER
Declare Integer GlobalFree IN kernel32 INTEGER
PRIVATE lcBuff , lnValue, lnretu
STORE 0 TO m.lnValue, m.lnretu
? '连接前测试目录是否存在:'
??dire(lcUncPath)
m.lcBuff = REPLICATE(CHR(0),16) + Setvalue('') + Setvalue(m.lcUncPath) + REPLICATE(CHR(0),16)
m.lnretu = WNetAddConnection2(m.lcBuff, lcPassWord, lcUserName, 1)
? '建立连接返回值:'
??m.lnretu
IF m.lnValue <> 0
= GlobalFree (m.lnValue)
ENDIF
? '测试目录是否存在:'
??dire(lcUncPath)
*copy file config.fpw to &lcUncPath
use lcUncPath+'\sysstudinfo'
?'文件在吗:'
??file(lcUncPath+'\config.fpw')
dd=WNetCancelConnection2(lcUncpath , 0 , .T.)
? '取消连接返回值:'
??dd
? '测试目录是否存在:'
??dire(lcUncPath)
CLEAR DLLS "WNetAddConnection2","GlobalAlloc","Str2Heap","GlobalFree","WNetCancelConnection2"
RETURN
FUNCTION Setvalue
PARAMETERS lcString
LOCAL b0, b1, b2, b3
m.lcString = m.lcString + CHR(0)
m.lnretu = LEN(m.lcString)
m.lnValue = GlobalAlloc (0, m.lnretu)
IF m.lnValue <> 0
= Str2Heap (m.lnValue, @m.lcString, m.lnretu)
ENDIF
b3 = INT(m.lnValue/16777216)
b2 = INT((m.lnValue - b3*16777216)/65536)
b1 = INT((m.lnValue - b3*16777216 - b2*65536)/256)
b0 = MOD(m.lnValue, 256)
RETURN Chr(b0)+Chr(b1)+Chr(b2)+Chr(b3)
ENDFUNC
******************************************************************************************************************************************************************************
2017-02-24 08:49