98/ME下实现文件夹的共享和删除共享

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

'独立模块中输入
Option Explicit
' 共享错误信息
Public Const NERR_NoWorkstation = 2102           ' 工作站驱动器未被安装.
Public Const NERR_UnknownServer = 2103           ' 机器名不可用.
Public Const NERR_RemoteOnly = 2106              ' 该操作不被机器支持.
Public Const NERR_ServerNotStarted = 2114        ' 服务未启动.
Public Const NERR_UnknownDevDir = 2116           ' 目录或驱动器不存在.
Public Const NERR_RedirectedPath = 2117          ' 该共享资源不能被共享.
Public Const NERR_DuplicateShare = 2118          ' 该共享名已被使用.
Public Const NERR_NetworkError = 2136            ' 发生一般网络错误,共享失败.
Public Const NERR_InvalidAPI = 2142              ' 该API不被远端机器所支持.

' 标准错误信息
Public Const ERROR_ACCESS_DENIED = 5
Public Const ERROR_INVALID_PARAMETER = 87
Public Const ERROR_INVALID_NAME = 123
Public Const ERROR_INVALID_LEVEL = 124


Public Declare Sub CopyMEmory Lib "kernel32" Alias "RtlMoveMEmory" (lpDest As Any, lpSource As Any, ByVal lBytes As Long)

' 共享类型
Public Const STYPE_DISKTREE = 0
Public Const STYPE_PRINTQ = 1
Public Const STYPE_DEVICE = 2
Public Const STYPE_IPC = 3
Public Const STYPE_SPECIAL = &H80000000

Public Const SHI_USES_UNLIMITED = -1&

' 共享权限
Public Const SHI50F_RDONLY = &H1
Public Const SHI50F_FULL = &H2
Public Const SHI50F_DEPENDSON = SHI50F_RDONLY Or SHI50F_FULL
Public Const SHI50F_ACCESSMASK = SHI50F_RDONLY Or SHI50F_FULL
Public Const SHI50F_PERSIST = &H100
Public Const SHI50F_SYSTEM = &H200     '/* 该共享是不可见的 */
Public Const LM20_NNLEN = 12           '// LM 2.0 机器名长度
Public Const LM20_UNLEN = 20           '// LM 2.0 用户名称最大长度
Public Const LM20_PWLEN = 14           '// LM 2.0 密码最大长度
Public Const SHPWLEN = 8               '// 共享密码 (bytes)
Public Const SHARELEVEL50 = 50

Public Type SHARE_INFO_50
    yNetNaME(LM20_NNLEN)    As Byte         'charshi50_netnaME[LM20_NNLEN+1];
    '/* 共享名称 */
    yType                   As Byte         ' unsigned char shi50_type;

    nFlags                  As Integer      ' short shi50_flags;

    lpzRemark               As Long         ' char FAR *shi50_remark;

    lpzPath                 As Long         ' char FAR *shi50_path;
    '/* 共享路径 */
    yRWPassword(SHPWLEN)    As Byte         ' char shi50_rw_password[SHPWLEN+1];
    '/* 可读/写共享密码 */
    yROPassword(SHPWLEN)    As Byte         ' char shi50_ro_password[SHPWLEN+1];
    '/* 只读共享密码 */
End Type

Public Declare Function NetShareAdd50 Lib "svrapi" Alias "NetShareAdd" _
                       (ByVal lpzServerNaME As String, _
                        ByVal nShareLevel As Integer, _
                        ShareInfo As Any, _
                        ByVal nBufferSize As Integer) As Long

Public Declare Function NetShareDelete Lib "svrapi" Alias "NetShareDel" _
                       (ByVal lpzServerNaME As String, _
                        ByVal sShareNaME As String, _
                        ByVal nReserved As Integer) As Long
'*************建立共享********************
Public Function CreateShare(ByVal sSharePath As String, _
                            ByVal sShareNaME As String, _
                            ByVal sRemark As String, _
                            ByVal sROPass As String, _
                            ByVal sRWPass As String) As Long

    Dim ShareInfo       As SHARE_INFO_50
    Dim lReturn         As Long

    Dim sServerNaME     As String
    Dim ySharePath()    As Byte
    Dim yRemark()       As Byte

    sServerNaME = ""   '建立一个本地共享

    With ShareInfo

        .yType = STYPE_DISKTREE     ' Disk type share
        .nFlags = SHI50F_PERSIST + SHI50F_DEPENDSON ' + SHI50F_SYSTEM '


        ySharePath() = StrConv(UCase$(sSharePath & vbNullChar), vbFromUnicode)
        .lpzPath = VarPtr(ySharePath(0))

        yRemark() = StrConv(sRemark & vbNullChar, vbFromUnicode)
        .lpzRemark = VarPtr(yRemark(0))


        Erase .yNetNaME()
        sShareNaME = UCase$(sShareNaME & vbNullChar)
        CopyMEmory .yNetNaME(0), ByVal sShareNaME, Len(sShareNaME)


        Erase .yRWPassword()
        sRWPass = UCase$(sRWPass & vbNullChar)
        CopyMEmory .yRWPassword(0), ByVal sRWPass, Len(sRWPass)


        Erase .yROPassword()
        sROPass = UCase$(sROPass & vbNullChar)
        CopyMEmory .yROPassword(0), ByVal sROPass, Len(sROPass)
    End With

    lReturn = NetShareAdd50(sServerNaME, SHARELEVEL50, ShareInfo, LenB(ShareInfo))

    Debug.Print "lReturn:"; lReturn

    CreateShare = lReturn

End Function
'******************删除共享**************************
Public Function DeleteShare(ByVal sShareNaME As String) As Long

  

    DeleteShare = NetShareDelete("", UCase$(sShareNaME), 0)

    Debug.Print "lReturn:"; DeleteShare, "DLL Error:"; Err.LastDllError

End Function

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值