【函数】
WNetAddConnection
【操作系统】
Win9x:Y
WinNT:Y
【声明】
Function ulong WNetAddConnection(ref string lpszNetPath,ref string lpszPassword,ref string lpszLocalName) LIBRARY "mpr.dll" ALIAS FOR "WNetAddConnectionA"
【说明】
创建同一个网络资源的永久性连接
【返回值】
Long,零表示成功。会设置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,则可用WNetGetLastError取得额外的错误信息
【其它】
【参数列表】
lpszNetPath ---- String,要连接的网络名
lpszPassword --- String,可选的一个密码。如为vbNullString,表示采用当前用户的默认密码。如为一个空字串,则不用任何密码
lpszLocalName -- String,资源的本地名称。(例如,F: 和 LPT1:)
【函数】
WNetAddConnection2
【操作系统】
Win9x:Y
WinNT:Y
【声明】
Function ulong WNetAddConnection2(ref NETRESOURCE lpNetResource,ref string lpPassword,ref string lpUserName,ulong dwFlags) LIBRARY "mpr.dll" ALIAS FOR "WNetAddConnection2A"
【说明】
创建同一个网络资源的连接
【返回值】
Long,零表示成功。会设置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,则可用WNetGetLastError取得额外的错误信息
【其它】
【参数列表】
lpNetResource -- NETRESOURCE,在这个结构中设置了下述字段,对要连接的网络资源进行了定义:dwType,
lpLocalName (可为 vbNullString), lpRemoteName, lpProvider (设为 vbNullString
表示用默认提供者)。该结构的其他所有变量都会被忽略
lpPassword ----- String,可选的一个密码。如为vbNullString,表示采用当前用户的默认密码。如为一个空字串,则不用任何密码
lpUserName ----- String,用于连接的用户名。如为vbNullString,表示使用当前用户
dwFlags -------- Long,设为零;或指定常数CONNECT_UPDATE_PROFILE,表示创建永久性连接
我做了如下声明:
FUNCTION ulong WNetAddConnection2(ref NETRESOURCE lpNetResource,ref string lpPassword,ref string lpUserName,ulong dwFlags) LIBRARY "mpr.dll" ALIAS FOR "WNetAddConnection2A"
声明如下函数调用API
netresource lst_net
lst_net.dwscope = 0
lst_net.dwtype = 0
lst_net.dwdisplaytype = 0
lst_net.dwusage = 0
lst_net.lplocalname = ls_net_disk
lst_net.lpremotename = ls_net_resoure
lst_net.lpcomment = ''
lst_net.lpprovider = ''
long l_dwflag = 0
if WNetAddConnection2(lst_net,ls_net_pass,ls_net_user,l_dwflag) = 0 then
return true
else
return false
end if
在程序中调用函数
if GetEnvironment(env) = 1 then
Choose case env.OSType
Case WindowsNT!
if Wf_addnet1('//'+is_serverip+'/'+is_remotedir,is_suserid,is_spass,'z:') = false then
ls_errmsg = '远程目录映射失败,请检查配置'
goto err
end if
Case Windows!
if wf_addnet('//'+is_serverip+'/'+is_remotedir,is_spass,'Z:') = false then
ls_errmsg = '远程目录映射失败,请检查配置'
goto err
end if
Case else
ls_errmsg = '未知操作系统'
goto err
End choose
end if