我现在想实现这么一个功能:
举例说明,如果有E:\TEST目录,我想把E:\TEST映射成一个F盘(当然了,本来硬盘分区里F盘符是空闲的),别人点击F盘实际上是访问E:\TEST目录,对他来说是透明的。我记得可以利用什么函数映射别人机器上的目录为虚拟盘,那么对于自己机器的目录又是怎么映射成虚拟盘呢?一定要自动映射,就是说,整个映射过程不需要询问用户是否映射啊,映射名是什么等等
急啊~~~
请大家帮忙
是用API还是有其他什么好办法吗?

解决方案 »

  1.   

    在我的机子yang上,先将e:\oa目录共享
    Option ExplicitPrivate Type NETRESOURCE
        dwScope As Long
        dwType As Long
        dwDisplayType As Long
        dwUsage As Long
        lpLocalName As String
        lpRemoteName As String
        lpComment As String
        lpProvider As String
    End TypeConst NO_ERROR = 0
    Const CONNECT_UPDATE_PROFILE = &H1
    Const RESOURCETYPE_DISK = &H1
    Const RESOURCETYPE_PRINT = &H2
    Const RESOURCETYPE_ANY = &H0
    Const RESOURCE_CONNECTED = &H1
    Const RESOURCE_REMEMBERED = &H3
    Const RESOURCE_GLOBALNET = &H2
    Const RESOURCEDISPLAYTYPE_DOMAIN = &H1
    Const RESOURCEDISPLAYTYPE_GENERIC = &H0
    Const RESOURCEDISPLAYTYPE_SERVER = &H2
    Const RESOURCEDISPLAYTYPE_SHARE = &H3
    Const RESOURCEUSAGE_CONNECTABLE = &H1
    Const RESOURCEUSAGE_CONTAINER = &H2Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias _
    "WNetAddConnection2A" _
    (lpNetResource As NETRESOURCE, _
    ByVal lpPassword As String, _
    ByVal lpUserName As String, _
    ByVal dwFlags As Long) As LongPrivate Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias _
    "WNetCancelConnection2A" _
    (ByVal lpName As String, _
    ByVal dwFlags As Long, _
    ByVal fForce As Long) As Long
    '
    'Private Sub cmdConnect_Click()Dim NetR As NETRESOURCE
    Dim ErrInfo As LongNetR.dwScope = RESOURCE_GLOBALNET
    NetR.dwType = RESOURCETYPE_DISK
    NetR.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
    NetR.dwUsage = RESOURCEUSAGE_CONNECTABLE
    NetR.lpLocalName = "k:"  '映射的盘副
    NetR.lpRemoteName = "\\yang\oa"
    'Text1(3).Text, Text1(2).Text密码和用户名
    ErrInfo = WNetAddConnection2(NetR, Text1(3).Text, Text1(2).Text, CONNECT_UPDATE_PROFILE)If ErrInfo = NO_ERROR Then
        MsgBox "Net connection successful!", vbInformation
    Else
        MsgBox "ERROR: " & Str(ErrInfo) & " - Net connection unsuccessful!", _
        vbExclamation
    End IfEnd SubPrivate Sub cmdDisconnect_Click()Dim ErrInfo As Long
    Dim strLocalName As StringstrLocalName = Text1(4).Text
    ErrInfo = WNetCancelConnection2(strLocalName, CONNECT_UPDATE_PROFILE, False)If ErrInfo = NO_ERROR Then
        MsgBox "Net disconnection successful!", vbInformation
    Else
        MsgBox "ERROR: " & Str(ErrInfo) & " - Net disconnection unsuccessful!", _
        vbExclamation
    End IfEnd Sub
      

  2.   

    用shell执行:
    net use z: \\<计算机名>\共享目录名 "密码" /user:<计算机名>\<用户名>
      

  3.   

    如果是98系统,可以用SHELL执行
    subst f: e:\test
    卸载用
    subst f: /d