[请教]WNetAddConnection2设置网络映射的问题?

时间:2022-04-10 09:03:31
请教高手:

想读取远程电脑上的一个文本文件,查了相关网上资料使用WNetAddConnection2方法进行网络映射,代码如下:


    
Dim NR As NETRESOURCE
    Dim MyErr As Long

    NR.dwScope = RESOURCE_GLOBALNET
    NR.dwType = RESOURCETYPE_DISK
    NR.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
    NR.dwUsage = RESOURCEUSAGE_CONNECTABLE
    NR.lpLocalName = "d;"
    NR.lpRemoteName = "\\10.86.35.28\D$"
    
    MyErr = WNetAddConnection2(NR, "123456", "admin", CONNECT_UPDATE_PROFILE)

    If MyErr = NO_ERROR Then

        MsgBox "映射成功!", vbInformation, "信息提示"

    Else

        MsgBox "出现错误:" & Err.Description & " -映射失败!", vbExclamation, "信息提示"

    End If


已经将对方文件夹设为共享了,运行后为什么访问不了?
是不是lpLocalName和lpRemoteName等参数有问题??

谢谢~~~

17 个解决方案

#1


CONNECT_UPDATE_PROFILE等于多少咋没说?

#2


Public Const CONNECT_UPDATE_PROFILE = &H1
表示创建的是永久性连接

#3


=&H1

引用 1 楼 dbcontrols 的回复:
CONNECT_UPDATE_PROFILE等于多少咋没说?

#4


病毒的传播方式

#5


那应该怎么写呢?
我是VB新手哎
在运行里输入\\10.86.35.28可以看到对方的共享文件夹,但是为什么用代码就不行呢。。。。

引用 4 楼 dbcontrols 的回复:
病毒的传播方式

#6


运行后WNetAddConnection2的返回值为1200

#7


Private Const ERROR_BAD_DEVICE = 1200&
The value specified by lpLocalName is invalid.
指定的lpLocalName 无效

#8


NR.lpLocalName = "d ;"

#9


lpLocalName Points to a null-terminated string that specifies the name of a local device to be redirected, such as "F:" or "LPT1". The string is treated in a case-insensitive manner. If the string is empty or lpLocalName is NULL, the function makes a connection to the network resource without redirecting a local device. 

你该用冒号
并且没有用过这个盘符才可以,这是映射后的盘符

#10


NR.lpLocalName = "d:"
把D改成其他的也一样

#11


改成其他的后返回值肯定不一样
就跟你吃饱了和饿着,都做不了总统
但对你来说吃饱了和饿着是不一样的
在别人眼里你都做不了总统

引用 10 楼 north00 的回复:
NR.lpLocalName = "d:"
把D改成其他的也一样

#12


告诉我返回值我帮你看一下新的错误是啥

#13


返回值是5
这个返回值的帮助在MSDN里?

引用 12 楼 dbcontrols 的回复:
告诉我返回值我帮你看一下新的错误是啥

#14


返回值是5表示对方拒绝
这个返回值的帮助不在MSDN里

#15


为什么会拒绝呢?
我run的时候都能看到对方的文件,需要更改什么设置吗?

引用 14 楼 dbcontrols 的回复:
返回值是5表示对方拒绝
这个返回值的帮助不在MSDN里

#16


也许这个函数只能在局域网里使用
不确定

引用 15 楼 north00 的回复:
为什么会拒绝呢?
我run的时候都能看到对方的文件,需要更改什么设置吗?


引用 14 楼 dbcontrols 的回复:
返回值是5表示对方拒绝
这个返回值的帮助不在MSDN里

#17


该回复于2011-01-18 14:38:18被版主删除

#1


CONNECT_UPDATE_PROFILE等于多少咋没说?

#2


Public Const CONNECT_UPDATE_PROFILE = &H1
表示创建的是永久性连接

#3


=&H1

引用 1 楼 dbcontrols 的回复:
CONNECT_UPDATE_PROFILE等于多少咋没说?

#4


病毒的传播方式

#5


那应该怎么写呢?
我是VB新手哎
在运行里输入\\10.86.35.28可以看到对方的共享文件夹,但是为什么用代码就不行呢。。。。

引用 4 楼 dbcontrols 的回复:
病毒的传播方式

#6


运行后WNetAddConnection2的返回值为1200

#7


Private Const ERROR_BAD_DEVICE = 1200&
The value specified by lpLocalName is invalid.
指定的lpLocalName 无效

#8


NR.lpLocalName = "d ;"

#9


lpLocalName Points to a null-terminated string that specifies the name of a local device to be redirected, such as "F:" or "LPT1". The string is treated in a case-insensitive manner. If the string is empty or lpLocalName is NULL, the function makes a connection to the network resource without redirecting a local device. 

你该用冒号
并且没有用过这个盘符才可以,这是映射后的盘符

#10


NR.lpLocalName = "d:"
把D改成其他的也一样

#11


改成其他的后返回值肯定不一样
就跟你吃饱了和饿着,都做不了总统
但对你来说吃饱了和饿着是不一样的
在别人眼里你都做不了总统

引用 10 楼 north00 的回复:
NR.lpLocalName = "d:"
把D改成其他的也一样

#12


告诉我返回值我帮你看一下新的错误是啥

#13


返回值是5
这个返回值的帮助在MSDN里?

引用 12 楼 dbcontrols 的回复:
告诉我返回值我帮你看一下新的错误是啥

#14


返回值是5表示对方拒绝
这个返回值的帮助不在MSDN里

#15


为什么会拒绝呢?
我run的时候都能看到对方的文件,需要更改什么设置吗?

引用 14 楼 dbcontrols 的回复:
返回值是5表示对方拒绝
这个返回值的帮助不在MSDN里

#16


也许这个函数只能在局域网里使用
不确定

引用 15 楼 north00 的回复:
为什么会拒绝呢?
我run的时候都能看到对方的文件,需要更改什么设置吗?


引用 14 楼 dbcontrols 的回复:
返回值是5表示对方拒绝
这个返回值的帮助不在MSDN里

#17


该回复于2011-01-18 14:38:18被版主删除