Form1.frm
上传用户:wxknfb
上传日期:2022-08-10
资源大小:4k
文件大小:8k
源码类别:

网络编程

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "添加一个共享"
  5.    ClientHeight    =   3000
  6.    ClientLeft      =   45
  7.    ClientTop       =   435
  8.    ClientWidth     =   3600
  9.    LinkTopic       =   "Form1"
  10.    MaxButton       =   0   'False
  11.    ScaleHeight     =   3000
  12.    ScaleWidth      =   3600
  13.    StartUpPosition =   3  '窗口缺省
  14.    Begin VB.TextBox Text5 
  15.       Height          =   285
  16.       Left            =   2520
  17.       TabIndex        =   11
  18.       Text            =   "12345678"
  19.       Top             =   1920
  20.       Width           =   975
  21.    End
  22.    Begin VB.TextBox Text4 
  23.       Height          =   285
  24.       Left            =   720
  25.       TabIndex        =   9
  26.       Text            =   "共享文件夹"
  27.       Top             =   720
  28.       Width           =   2775
  29.    End
  30.    Begin VB.TextBox Text3 
  31.       Height          =   285
  32.       Left            =   720
  33.       TabIndex        =   7
  34.       Text            =   "documentos"
  35.       Top             =   360
  36.       Width           =   2775
  37.    End
  38.    Begin VB.TextBox Text2 
  39.       Height          =   285
  40.       Left            =   120
  41.       TabIndex        =   5
  42.       Text            =   "C:winNT"
  43.       Top             =   1560
  44.       Width           =   3375
  45.    End
  46.    Begin VB.TextBox Text1 
  47.       Alignment       =   2  'Center
  48.       Height          =   285
  49.       Left            =   720
  50.       TabIndex        =   3
  51.       Text            =   "127.0.0.1"
  52.       Top             =   0
  53.       Width           =   2775
  54.    End
  55.    Begin VB.CommandButton Command2 
  56.       Caption         =   "删除共享"
  57.       Height          =   495
  58.       Left            =   1320
  59.       TabIndex        =   1
  60.       Top             =   2400
  61.       Width           =   1215
  62.    End
  63.    Begin VB.CommandButton Command1 
  64.       Caption         =   "添加共享"
  65.       Height          =   495
  66.       Left            =   120
  67.       TabIndex        =   0
  68.       Top             =   2400
  69.       Width           =   1215
  70.    End
  71.    Begin VB.Label Label5 
  72.       AutoSize        =   -1  'True
  73.       Caption         =   "密码保护(最大 8 位长度):"
  74.       Height          =   180
  75.       Left            =   120
  76.       TabIndex        =   10
  77.       Top             =   1920
  78.       Width           =   2160
  79.    End
  80.    Begin VB.Label Label4 
  81.       AutoSize        =   -1  'True
  82.       Caption         =   "注释:"
  83.       Height          =   180
  84.       Left            =   60
  85.       TabIndex        =   8
  86.       Top             =   780
  87.       Width           =   540
  88.    End
  89.    Begin VB.Label Label3 
  90.       AutoSize        =   -1  'True
  91.       Caption         =   "网络名:"
  92.       Height          =   180
  93.       Left            =   60
  94.       TabIndex        =   6
  95.       Top             =   420
  96.       Width           =   720
  97.    End
  98.    Begin VB.Label Label2 
  99.       AutoSize        =   -1  'True
  100.       Caption         =   "要共享的远程路径:"
  101.       Height          =   180
  102.       Left            =   120
  103.       TabIndex        =   4
  104.       Top             =   1320
  105.       Width           =   1620
  106.    End
  107.    Begin VB.Label Label1 
  108.       AutoSize        =   -1  'True
  109.       Caption         =   "连接:"
  110.       Height          =   180
  111.       Left            =   60
  112.       TabIndex        =   2
  113.       Top             =   60
  114.       Width           =   540
  115.    End
  116. End
  117. Attribute VB_Name = "Form1"
  118. Attribute VB_GlobalNameSpace = False
  119. Attribute VB_Creatable = False
  120. Attribute VB_PredeclaredId = True
  121. Attribute VB_Exposed = False
  122. '****************************************************************************
  123. '人人为我,我为人人
  124. '枕善居汉化收藏整理
  125. '发布日期:05/03/29
  126. '描述:一个共享远程文件夹源码示例
  127. '网站:http://www.mndsoft.com
  128. 'e-mail:mnd@mndsoft.com
  129. '****************************************************************************
  130. Option Explicit
  131. 'NET_API_STATUS NetShareAdd(
  132. '   LPTSTR servername,
  133. '    DWORD level,
  134. '    LPBYTE buf,
  135. '    LPDWORD parm_err
  136. '   );
  137. 'NET_API_STATUS NetShareDel(
  138. '    LPTSTR servername,
  139. '    LPTSTR netname,
  140. '    dword reserved
  141. '   );
  142. 'typedef struct _SHARE_INFO_502 {
  143. '    LPTSTR    shi502_netname;
  144. '    DWORD     shi502_type;
  145. '    LPTSTR    shi502_remark;
  146. '    DWORD     shi502_permissions;
  147. '    DWORD     shi502_max_uses;
  148. '    DWORD     shi502_current_uses;
  149. '    LPTSTR    shi502_path;
  150. '    LPTSTR    shi502_passwd;
  151. '    DWORD     shi502_reserved;
  152. '    PSECURITY_DESCRIPTOR  shi502_security_descriptor;
  153. '} SHARE_INFO_502, *PSHARE_INFO_502, *LPSHARE_INFO_502;
  154. Private Type ACL
  155.     AclRevision As Byte
  156.     Sbz1 As Byte
  157.     AclSize As Integer
  158.     AceCount As Integer
  159.     Sbz2 As Integer
  160. End Type
  161. Private Type SECURITY_DESCRIPTOR
  162.     Revision As Byte
  163.     Sbz1 As Byte
  164.     Control As Long
  165.     Owner As Long
  166.     Group As Long
  167.     Sacl As ACL
  168.     Dacl As ACL
  169. End Type
  170. Private Type SHARE_INFO_502
  171.      shi502_netname As String  'UNICODE
  172.      shi502_type As Long
  173.      shi502_remark As String   'UNICODE
  174.      shi502_permissions As Long
  175.      shi502_max_uses As Long
  176.      shi502_current_uses As Long
  177.      shi502_path As String      'UNICODE
  178.      shi502_passwd As String    'UNICODE
  179.      shi502_reserved As Long
  180.      shi502_security_descriptor As SECURITY_DESCRIPTOR
  181. End Type
  182. Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long
  183. Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
  184. Private Declare Function NetShareDel Lib "netapi32.dll" (ByVal servername As String, ByVal netname As String, ByVal reserved As Long) As Long
  185. Private Declare Function NetShareAdd Lib "netapi32.dll" (ByVal servername As String, ByVal level As Long, buf As SHARE_INFO_502, parm_err As Long) As Long
  186. Private Const STYPE_DISKTREE As Long = 0
  187. Private Const ACCESS_ATRIB As Long = &H20
  188. Private Const ACCESS_CREATE As Long = &H2
  189. Private Const ACCESS_DELETE As Long = &H10
  190. Private Const ACCESS_EXEC As Long = &H8
  191. Private Const ACCESS_WRITE As Long = &H2
  192. Private Const ACCESS_READ As Long = &H1
  193. Private Const ACCESS_PERM As Long = &H40
  194. Private Const ACCESS_ALL As Long = (ACCESS_READ Or ACCESS_WRITE Or ACCESS_CREATE Or ACCESS_EXEC Or ACCESS_DELETE Or ACCESS_ATRIB Or ACCESS_PERM)
  195. Private Const SHPWLEN As Long = 8
  196. Dim i As Long
  197. '添加共享
  198. Private Sub Command1_Click()
  199.     Dim res As Long
  200.     Dim par_err As Long
  201.     Dim password As String
  202.     Dim share As SHARE_INFO_502
  203.     Dim ruta As String
  204.     
  205.     password = "manuel" & vbNullChar
  206.     
  207.     If Len(password) > SHPWLEN + 1 Then: Exit Sub
  208.         If Text1 = "" Or Text1 = "127.0.0.1" Then
  209.         ruta = SetFolder(Me.hwnd, "ShareFolderADD")
  210.     Else
  211.         ruta = Text2
  212.     End If
  213.     
  214.     share.shi502_netname = StrConv(Text3, vbUnicode)
  215.     share.shi502_type = STYPE_DISKTREE
  216.     share.shi502_remark = StrConv(Text4, vbUnicode)
  217.     share.shi502_permissions = ACCESS_ALL
  218.     share.shi502_max_uses = &HFFFFFFFF  ' = -1
  219.     share.shi502_current_uses = 1
  220.     share.shi502_path = StrConv(ruta, vbUnicode)
  221.     share.shi502_passwd = StrConv(password, vbUnicode)
  222.     share.shi502_reserved = 0&
  223.     share.shi502_security_descriptor.Owner = &H50
  224.     share.shi502_security_descriptor.Group = 0&
  225.     share.shi502_security_descriptor.Control = 0&
  226.     
  227.     res = NetShareAdd(StrConv("\" & Text1, vbUnicode), 502, share, par_err)
  228.     
  229.     
  230.     If res = 0 Then
  231.         MsgBox LastErrorApi(res), vbInformation, "添加共享"
  232.     Else
  233.         MsgBox LastErrorApi(res), vbCritical, "添加共享"
  234.     End If
  235. End Sub
  236. Public Function LastErrorApi(errordll As Long) As String
  237.     Dim res As Long
  238.     Dim s As String
  239.     s = String(255, vbNullChar)
  240.     res = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, errordll, 0, s, Len(s), 255)
  241.     If res <> 0 Then LastErrorApi = Left(s, res)
  242. End Function
  243. '删除共享
  244. Private Sub Command2_Click()
  245.     Dim res As Long
  246.     res = NetShareDel(StrConv("\" & Text1, vbUnicode), StrConv("documentos", vbUnicode), 0&)
  247.     If res = 0 Then
  248.         MsgBox LastErrorApi(res), vbInformation, "删除共享"
  249.     Else
  250.         MsgBox LastErrorApi(res), vbCritical, "删除共享"
  251.     End If
  252.     
  253. End Sub