转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
98/ME下实现文件夹的共享和删除共享         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:672 更新时间:2009/4/23 18:59:13

''''独立模块中输入
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


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台