Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Visual Basic] Condividere una cartella in rete tramite vb.net
Forum - C# / VB.NET - [Visual Basic] Condividere una cartella in rete tramite vb.net

Avatar
andrew4 (Normal User)
Newbie


Messaggi: 5
Iscritto: 14/03/2010

Segnala al moderatore
Postato alle 15:32
Sabato, 30/04/2011
salve,
come scritto nel titolo volevo condividere una cartella in rete ed ho trovato solo questo codice:

Codice sorgente - presumibilmente VB.NET

  1. Imports System.Runtime.InteropServices
  2.  
  3.  Declare Unicode Function NetShareAdd Lib "netapi32.dll" ( _
  4.            <MarshalAs(UnmanagedType.LPWStr)> _
  5.            ByVal servername As String, _
  6.            ByVal level As Integer, _
  7.            ByRef buf As SHARE_INFO_2, _
  8.            ByRef parm_err As Integer) As Integer
  9.  
  10.     'Definizione di errore.
  11.     Public Enum NetError
  12.         NERR_Success = 0
  13.         ERROR_ACCESS_DENIED = 5
  14.         ERROR_INVALID_PARAMETER = 87
  15.         ERROR_INVALID_NAME = 123
  16.         ERROR_INVALID_LEVEL = 124
  17.         NERR_BASE = 2100
  18.         NERR_UnknownDevDir = (NERR_BASE + 16)
  19.         NERR_RedirectedPath = (NERR_BASE + 17)
  20.         NERR_DuplicateShare = (NERR_BASE + 18)
  21.         NERR_BufTooSmall = (NERR_BASE + 23)
  22.     End Enum
  23.  
  24.  
  25.     ' definizione di condivisione
  26.     Public Enum ShareType
  27.         '  Disk Share
  28.         Disk = 0
  29.         ' Printer Share
  30.         Printer = 1
  31.         ' Device Share
  32.         Device = 2
  33.         ' IPC Share
  34.         IPC = 3
  35.         '>Special Share
  36.         Special = &H80000000
  37.     End Enum
  38.  
  39.  
  40.     'Informazioni relativa ai permessi
  41.     Public Enum SharePermissions
  42.         ACCESS_NONE = 0
  43.         ACCESS_READ = 1
  44.         ACCESS_WRITE = 2
  45.         ACCESS_CREATE = 4
  46.         ACCESS_EXEC = 8
  47.         ACCESS_DELETE = &H10
  48.         ACCESS_ATRIB = &H20
  49.         ACCESS_PERM = &H40
  50.         ACCESS_ALL = ACCESS_READ + _
  51.                 ACCESS_WRITE + _
  52.                 ACCESS_CREATE + _
  53.                 ACCESS_EXEC + _
  54.                 ACCESS_DELETE + _
  55.                 ACCESS_ATRIB + _
  56.                 ACCESS_PERM
  57.         ACCESS_GROUP = &H8000
  58.     End Enum
  59.  
  60.  
  61.  
  62.     <StructLayout(LayoutKind.Sequential)> _
  63.     Public Structure SHARE_INFO_2
  64.         <MarshalAs(UnmanagedType.LPWStr)> _
  65.         Public shi2_netname As String
  66.         <MarshalAs(UnmanagedType.U4)> _
  67.         Public shi2_type As ShareType
  68.         <MarshalAs(UnmanagedType.LPWStr)> _
  69.         Public shi2_remark As String
  70.         <MarshalAs(UnmanagedType.U4)> _
  71.         Public shi2_permissions As SharePermissions
  72.         <MarshalAs(UnmanagedType.U4)> _
  73.         Public shi2_max_uses As Integer
  74.         <MarshalAs(UnmanagedType.U4)> _
  75.         Public shi2_current_uses As Integer
  76.         <MarshalAs(UnmanagedType.LPWStr)> _
  77.         Public shi2_path As String
  78.         <MarshalAs(UnmanagedType.LPWStr)> _
  79.         Public shi2_passwd As String
  80.  
  81.  
  82.  
  83.     End Structure




e nel button:

  
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim shi2 As SHARE_INFO_2
  2.  
  3.         'Valorizzo la struttura relativa ai parametri di condivisione
  4.         shi2.shi2_netname = "Condiddddda"      'Nome della condivisione
  5.         shi2.shi2_type = ShareType.Disk
  6.         shi2.shi2_remark = ""           ' commenti
  7.         shi2.shi2_permissions = SharePermissions.ACCESS_NONE
  8.         shi2.shi2_max_uses = -1        'Utenti  
  9.         shi2.shi2_current_uses = 0
  10.         shi2.shi2_path = "C:\test"      'Percorso e nome della Cartella da condividere
  11.         shi2.shi2_passwd = Nothing      'Password
  12.         Dim risultato As Integer
  13.         'primo parametro nome pc ritorna un intero, 0 creata, altrimenti non creata
  14.         risultato = NetShareAdd("Andrea", 2, shi2, Nothing)
  15.         'Visualizzo un messaggio a video
  16.         If risultato = NetError.NERR_Success Then
  17.             MessageBox.Show("Creata")
  18.         ElseIf risultato = NetError.NERR_DuplicateShare Then
  19.             MessageBox.Show("Nome già presente")
  20.         Else
  21.             MessageBox.Show("Errore")
  22.         End If





però mi da sempre errore, ovviamente ho creato la cartella, ma non so dove sbaglio.

Ultima modifica effettuata da Il Totem il 01/05/2011 alle 10:10
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 1:43
Domenica, 01/05/2011

direi che questo thread si può chiudere, troppi errori di regolamento.

quali errori scusa? - andrew4 - 01/05/11 12:57
PM