Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    28

    Aiutooo cartelle condivise [VB2008]

    Ciao a tutti vi espongo brevemente il mio problema:
    devo creare un piccolo applicativo che crei automaticamente una cartella condivisa con permessi lettura/scrittura, premetto che non uso un "server" vero e proprio. Dando un occhiata in giro ho trovato abbastanza documentazione che riguardava vb.net sopratutto utilizzando la lib management.dll tuttavia non ho trovato quasi niente che funzionasse veramente...leggendo in questo forum ho trovato anche chi diceva di utilizzare un file batch per creare la cartella condivisa...io ho provato a farlo utilizzando il comando 'net share' da prompt, tuttavia mi viene restituito l'errore 5 (accesso negato) ma è strano perchè utilizzo l'amministratore per eseguire il comando...qualcuno ha delle idee su come poter creare una cartella condivisa con vb2008? P.S. uso windows Vista

    Grazie 1000 in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Ma creare una cartella condivisa sul pc dove gira il tuo programma?? o su un'altro PC?
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: Aiutooo cartelle condivise [VB2008]

    Originariamente inviato da omega89
    Ciao a tutti vi espongo brevemente il mio problema:
    devo creare un piccolo applicativo che crei automaticamente una cartella condivisa con permessi lettura/scrittura
    Dove la devi creare:
    in locale oppure su un server della LAN?

    Originariamente inviato da omega89
    Dando un occhiata in giro ho trovato abbastanza documentazione che riguardava vb.net sopratutto utilizzando la lib management.dll tuttavia non ho trovato quasi niente che funzionasse veramente...
    Le cause possono essere diverse, ad es. potresti aver sbagliato qualcosa.
    In ogni caso, senza nessuna informazione, se non spieghi cosa e come hai fatto, che possiamo dirti?

    Originariamente inviato da omega89
    leggendo in questo forum ho trovato anche chi diceva di utilizzare un file batch per creare la cartella condivisa...
    Sì, è possibile. Io uso sempre questo metodo.

    Originariamente inviato da omega89
    io ho provato a farlo utilizzando il comando 'net share' da prompt, tuttavia mi viene restituito l'errore 5 (accesso negato)
    Se non mostri il codice... che possiamo dire?

    Originariamente inviato da omega89
    P.S. uso windows Vista
    Vista? Mmmm Vista è una brutta bestia...
    Su quale pc:
    - il tuo?
    - l'altro che funge da server?
    - entrambi?


    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    28
    Ciao la cartella la devo creare in locale, per quanto riguarda la parte codice che ho trovato su internet sono felice di passarti tutto

    Imports System.Runtime.InteropServices

    Public Class Form1
    'Dichiarazione di api
    Declare Unicode Function NetShareAdd Lib "netapi32.dll" ( _
    <MarshalAs(UnmanagedType.LPWStr)> _
    ByVal servername As String, _
    ByVal level As Integer, _
    ByRef buf As SHARE_INFO_2, _
    ByRef parm_err As Integer) As Integer

    'Definizione di errore.
    Public Enum NetError
    NERR_Success = 0
    ERROR_ACCESS_DENIED = 5
    ERROR_INVALID_PARAMETER = 87
    ERROR_INVALID_NAME = 123
    ERROR_INVALID_LEVEL = 124
    NERR_BASE = 2100
    NERR_UnknownDevDir = (NERR_BASE + 16)
    NERR_RedirectedPath = (NERR_BASE + 17)
    NERR_DuplicateShare = (NERR_BASE + 18)
    NERR_BufTooSmall = (NERR_BASE + 23)
    End Enum


    ' definizione di condivisione
    Public Enum ShareType
    ' Disk Share
    Disk = 0
    ' Printer Share
    Printer = 1
    ' Device Share
    Device = 2
    ' IPC Share
    IPC = 3
    '>Special Share
    Special = &H80000000
    End Enum


    'Informazioni relativa ai permessi
    Public Enum SharePermissions
    ACCESS_NONE = 0
    ACCESS_READ = 1
    ACCESS_WRITE = 2
    ACCESS_CREATE = 4
    ACCESS_EXEC = 8
    ACCESS_DELETE = &H10
    ACCESS_ATRIB = &H20
    ACCESS_PERM = &H40
    ACCESS_ALL = ACCESS_READ + _
    ACCESS_WRITE + _
    ACCESS_CREATE + _
    ACCESS_EXEC + _
    ACCESS_DELETE + _
    ACCESS_ATRIB + _
    ACCESS_PERM
    ACCESS_GROUP = &H8000
    End Enum



    Public Structure SHARE_INFO_2
    Public shi2_netname As String
    Public shi2_type As ShareType
    Public shi2_remark As String
    Public shi2_permissions As SharePermissions
    Public shi2_max_uses As Integer
    Public shi2_current_uses As Integer
    Public shi2_path As String
    Public shi2_passwd As String



    End Structure



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim shi2 As SHARE_INFO_2

    'Valorizzo la struttura relativa ai parametri di condivisione
    shi2.shi2_netname = "Condivisa" 'Nome della condivisione
    shi2.shi2_type = ShareType.Disk
    shi2.shi2_remark = "" ' commenti
    shi2.shi2_permissions = SharePermissions.ACCESS_NONE
    shi2.shi2_max_uses = -1 'Utenti
    shi2.shi2_current_uses = 0
    shi2.shi2_path = "c:\test" 'Percorso e nome della Cartella da condividere
    shi2.shi2_passwd = Nothing 'Password
    Dim risultato As Integer
    'primo parametro nome pc ritorna un intero, 0 creata, altrimenti non creata
    risultato = NetShareAdd("emanuele", 2, shi2, Nothing)
    'Visualizzo un messaggio a video
    If risultato = NetError.NERR_Success Then
    MessageBox.Show("Creata")
    ElseIf risultato = NetError.NERR_DuplicateShare Then
    MessageBox.Show("Nome già presente")
    Else
    MessageBox.Show("Errore")
    End If

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
    End Class

    tuttavia ripeto su windows vista mi restituisce il messaggio ("Errore")...non ho provato su XP perchè non ne ho la possibilità...

    si riesce a creare una cartella condivisa anche su Windows Vista utilizzando un file batch? no perchè con tutta questa protezione (firewall...permessi per delle cavolate...) non so proprio come fare...

    Si riesce secondo te a trovare una soluzione interoperabile tra i vari sistemi operativi? perchè questo programma deve andare a varie agenzie e ovviamente non conosco ne i sistemi che utilizzano ne tantomeno il sistema operativo della macchina chiamata "server"...

    spero di aver risposto a tutte le tue domande grazie 1000

    P.S. la cartella condivisa deve essere creata sul PC nel quale risiede il programma che (nel mio caso) utilizza come SO Windows Vista ma che in altri casi potrebbe essere XP...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Secondo me basta che con VB, si crea la cartella, la si condivide con net share senza usare un file .bat ma richiamandolo con un 'System.Diagnostics.ProcessStartInfo'
    Tipo:

    codice:
     	Dim psi As New System.Diagnostics.ProcessStartInfo
                psi.WindowStyle = ProcessWindowStyle.Hidden
                psi.RedirectStandardOutput = True
                psi.CreateNoWindow = True
                psi.UseShellExecute = False
                psi.FileName = "Net"
                psi.Arguments = "share Condivisa=C:\Miacartella"
    A me cos' con XP Pro funziona benissimo!
    Sbagliare è umano, perseverare è diabolico.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    28
    Grazie pirelli ma a me su Windows Vista non va...non mi da errori di nessun tipo tuttavia andando dopo nelle proprietà della cartella che cercavo di condividere non risulta esserci nessuna condivisione attiva...che sia un problema di permessi? premetto che utilizzo account Admin per eseguire il software...comunque anche provando a fare un semplice net share (net share prova=C:\prova) mi restituisce errore numero 5 accesso negato è un problema mio o un problema condiviso anche da altri utenti di W. Vista?

    ciao e grazie 1000

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Per fortuna non ho 'Windows Svista' per cui non posso provare. Comunque anche su XP sei fai un Net Share non compare la manina ma si vede poi la condivisione nelle proprietà!
    Sbagliare è umano, perseverare è diabolico.

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da omega89
    Grazie pirelli ma a me su Windows Vista non va...non mi da errori di nessun tipo tuttavia andando dopo nelle proprietà della cartella che cercavo di condividere non risulta esserci nessuna condivisione attiva...che sia un problema di permessi? premetto che utilizzo account Admin per eseguire il software...comunque anche provando a fare un semplice net share (net share prova=C:\prova) mi restituisce errore numero 5 accesso negato è un problema mio o un problema condiviso anche da altri utenti di W. Vista?
    Se non sbaglio, se tenti di farlo 'programmaticamente' Vista non lo permette (come invece avveniva con XP).
    Io ho provato dal Prompt dei comandi su Vista Ultimate SP1 e funziona benissimo.

    Utilizzando un file BAT dovrebbe eseguirlo senza problemi, come vedi in questo esempio:


    A suo tempo (in VB6), io mi ero fatto un eseguibile che uso ancora oggi da usare nelle installazioni per condividere la cartella di installazione (di norma sul server).
    Il percorso scelto dall'utente in fase di installazione viene passato al programma come un semplice parametro della riga di comando. Il mio programma associa al percorso il nome della condivisione ed esegue una shell:

    codice:
    Shell("CMD.EXE /C NET SHARE " & sCartella & " /UNLIMITED", vbHide)
    Dove sCartella conterrà NomeCondivisione=<percorso scelto dall'utente>
    che nel tuo caso sarebbe:
    prova=C:\prova


    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    28
    ciao gibra grazie 1000 per la risposta che è stata molto confortante...(sapendo che almeno da te funziona inizio ad intravedere un po di luce ) tuttavia adesso il problema è diventato del mio SVista che non mi permette di fare sto lavoro qui...ho fatto anche io un tentativo da batch tuttavia nell'allegato si vede l'errore di cui parlavo prima...che sia un problema di firewall? io sono l'unico utente sul mio PC e sono Amministratore a questo punto forse è un problema di firewall perchè di permessi non penso...



    comunque si anche la mia idea era quella...fare una shell ed eseguire il comando da VB 2008 se proprio non c'era soluzione...

    ciaoo e grazie ancora

  10. #10
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Io uso questo che è ottimo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.