IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

L'équivalent de NET SHARE [WD20]


Sujet :

WinDev

  1. #1
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut L'équivalent de NET SHARE
    Bonjour,
    Existe-il l'équivalent de NET SHARE en WinDev, ou via API ?

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour,

    Voici un exemple de création de partage (je ne me rappelle plus de la source) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    iDLL est entier = ChargeDLL("netapi32.dll")
     
    //partage d'un repertoire
    STYPE_DISKTREE est un entier = 0
     
    //permissions
    ACCESS_PERM     est un entier = 0x40
     
    SHARE_INFO_2 est une Structure
    shi2_netname est un entier
    shi2_type est un entier
    shi2_remark est un entier
    shi2_permissions est un entier
    shi2_max_uses est un entier
    shi2_current_uses est un entier
    shi2_path est un entier
    shi2_passwd est un entier
    FIN
     
    si2 est un SHARE_INFO_2
     
    Nom_Partage est une chaîne UNICODE = AnsiVersUnicode(monRepertoire)   //nom du partage
    Description_Partage  est une chaîne UNICODE = AnsiVersUnicode("Partage " + monRepertoire) //Description du partage
    Chemin_Partage  est une chaîne UNICODE = AnsiVersUnicode(sCheminCommun + monRepertoire)//Chemin du partage
    ServeurName_Partage  est une chaîne UNICODE = AnsiVersUnicode("\\" + NetNomMachine()) //Nom du serveur
     
    success  est un entier
    si2:shi2_netname = &Nom_Partage //Nom du partage
    si2:shi2_type = STYPE_DISKTREE  //Partager quoi ? ici un repertoire
    si2:shi2_remark = &Description_Partage //Commentaire
    si2:shi2_permissions = ACCESS_PERM  //accès en lecture
    si2:shi2_max_uses = -1 //illimité
    si2:shi2_path = &Chemin_Partage
     
    success = API("netapi32", "NetShareAdd", &ServeurName_Partage, 2, &si2, Null)
     
    MessageErreur est une chaîne
    SELON success
    	CASE 0 
    		MessageErreur = "Partage effectué"
    	CASE 5
    		MessageErreur = "ERREUR : Vous n'avez pas accès à la fonction demandée." 
    	CASE 50
    		MessageErreur = "ERREUR : Le partage n'est pas supporté."
    	CASE 53
    		MessageErreur = "ERREUR : Le chemin du partage n'est pas correct."
    	CASE 87
    		MessageErreur = "ERREUR : Un paramètre est invalide."
    	CASE 123 
    		MessageErreur = "ERREUR : Le nom n'est pas valide."
    	CASE 2118
    		MessageErreur = "ERREUR : Le nom existe déjà."
    	AUTRE CAS
    		MessageErreur = "ERREUR inconnue : " + success
    FIN
     
    SI success <> 0 ALORS
    	// Si le partage se passe mal, on affiche un message
    	// et les autres fois, on écrit seulement l'erreur dans l'INI
    //	si pErreur = "" ALORS Erreur(MessageErreur)
    	sErreurPartage = MessageErreur
    SINON
    	// Si c'est OK, on efface le message d'erreur de l'INI
    	sErreurPartage = ""
    FIN
     
    DéchargeDLL(iDLL)

  3. #3
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut
    Merci LO!

    J'allais partir sur du script DOS.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    REM Creation d'un partage
     
    REM Variables
    set DossierPartage=C:\ressources
    set NomPartage=ressources
    set RemarquePartage="Ressources Neoflow.fr"
    set NbrMaxUtilisateurs=10
     
    REM Creation du repertoire
    mkdir %DossierPartage%
     
    REM Partage du repertoire et parametrage
    net share %NomPartage%=%DossierPartage% /REMARK:%RemarquePartage% /USERS:%NbrMaxUtilisateurs% /GRANT:Florian,CHANGE /GRANT:Administrateur,FULL >> c:\temp\CompteRendu.log
    sachant qu'il est possible de récupérer le retour d'une commande DOS dans le script via un log en utilisant la syntaxe

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    la source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    //partage d'un repertoire
    STYPE_DISKTREE est un entier = 0
     
    //permissions
    ACCESS_READ     est un entier = 0x1
    ACCESS_WRITE    est un entier = 0x2
    ACCESS_CREATE   est un entier = 0x4
    ACCESS_EXEC     est un entier = 0x8
    ACCESS_DELETE   est un entier = 0x10
    ACCESS_ATRIB    est un entier = 0x20
    ACCESS_PERM     est un entier = 0x40
     
    SHARE_INFO_2 est une structure
    shi2_netname est un entier
    shi2_type est un entier
    shi2_remark est un entier
    shi2_permissions est un entier
    shi2_max_uses est un entier
    shi2_current_uses est un entier
    shi2_path est un entier
    shi2_passwd est un entier
    FIN
    si2 est un SHARE_INFO_2
     
    Nom_Partage est une chaîne UNICODE = AnsiVersUnicode("test")   //nom du partage
    Description_Partage  est une chaîne UNICODE = AnsiVersUnicode("description de mon partage") //Description du partage
    Chemin_Partage  est une chaîne UNICODE = AnsiVersUnicode("c:test") //Chemin du partage
    Password_Partage est une chaîne="pitleda" // Mot de passe du partage
    ServeurName_Partage  est une chaîne UNICODE = AnsiVersUnicode("\monpc") //Nom du serveur
     
    success  est un entier
    si2:shi2_netname=&Nom_Partage // nom du partage
    si2:shi2_type=STYPE_DISKTREE  //Partager koi ? ici un repertoire
    si2:shi2_remark=&Description_Partage //&Description_Partage // commentaire
    si2:shi2_permissions=ACCESS_READ  //acces en lecture
    si2:shi2_max_uses=-1 //illimlité
    //si2:shi2_current_uses=
    si2:shi2_path=&Chemin_Partage
    si2:shi2_passwd=&Password_Partage
     
    success=API("netapi32.dll","NetShareAdd",&ServeurName_Partage,2,&si2,Null)
     
    MessageErreur est une chaîne
    SELON success
    	CASE 0 
    		MessageErreur="Partage Effectué"
    	CASE 5
    		MessageErreur="ERREUR: Vous n'avez pas acces à la fonction demandé." 
    	CASE 50
    		MessageErreur="ERREUR: Le partage n'est pas supporté."
    	CASE 53
    		MessageErreur="ERREUR: Le chemin du partage n'est pas correct."
    	CASE 87
    		MessageErreur="ERREUR: Un Paramètre est invalide."
    	CASE 123 
    		MessageErreur="ERREUR: Le nom n'est pas valide."
    	AUTRE CAS
    		MessageErreur="ERREUR inconue"
    FIN
    ( KPiTN le 27-Sep-2004 )

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Bonjour,

    Voici un exemple de création de partage (je ne me rappelle plus de la source) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    iDLL est entier = ChargeDLL("netapi32.dll")
     
    //partage d'un repertoire
    STYPE_DISKTREE est un entier = 0
     
    //permissions
    ACCESS_PERM     est un entier = 0x40
     
    SHARE_INFO_2 est une Structure
    shi2_netname est un entier
    shi2_type est un entier
    shi2_remark est un entier
    shi2_permissions est un entier
    shi2_max_uses est un entier
    shi2_current_uses est un entier
    shi2_path est un entier
    shi2_passwd est un entier
    FIN
     
    si2 est un SHARE_INFO_2
     
    Nom_Partage est une chaîne UNICODE = AnsiVersUnicode(monRepertoire)   //nom du partage
    Description_Partage  est une chaîne UNICODE = AnsiVersUnicode("Partage " + monRepertoire) //Description du partage
    Chemin_Partage  est une chaîne UNICODE = AnsiVersUnicode(sCheminCommun + monRepertoire)//Chemin du partage
    ServeurName_Partage  est une chaîne UNICODE = AnsiVersUnicode("\\" + NetNomMachine()) //Nom du serveur
     
    success  est un entier
    si2:shi2_netname = &Nom_Partage //Nom du partage
    si2:shi2_type = STYPE_DISKTREE  //Partager quoi ? ici un repertoire
    si2:shi2_remark = &Description_Partage //Commentaire
    si2:shi2_permissions = ACCESS_PERM  //accès en lecture
    si2:shi2_max_uses = -1 //illimité
    si2:shi2_path = &Chemin_Partage
     
    success = API("netapi32", "NetShareAdd", &ServeurName_Partage, 2, &si2, Null)
     
    MessageErreur est une chaîne
    SELON success
    	CASE 0 
    		MessageErreur = "Partage effectué"
    	CASE 5
    		MessageErreur = "ERREUR : Vous n'avez pas accès à la fonction demandée." 
    	CASE 50
    		MessageErreur = "ERREUR : Le partage n'est pas supporté."
    	CASE 53
    		MessageErreur = "ERREUR : Le chemin du partage n'est pas correct."
    	CASE 87
    		MessageErreur = "ERREUR : Un paramètre est invalide."
    	CASE 123 
    		MessageErreur = "ERREUR : Le nom n'est pas valide."
    	CASE 2118
    		MessageErreur = "ERREUR : Le nom existe déjà."
    	AUTRE CAS
    		MessageErreur = "ERREUR inconnue : " + success
    FIN
     
    SI success <> 0 ALORS
    	// Si le partage se passe mal, on affiche un message
    	// et les autres fois, on écrit seulement l'erreur dans l'INI
    //	si pErreur = "" ALORS Erreur(MessageErreur)
    	sErreurPartage = MessageErreur
    SINON
    	// Si c'est OK, on efface le message d'erreur de l'INI
    	sErreurPartage = ""
    FIN
     
    DéchargeDLL(iDLL)
    Bonjour, merci pour ce partage.
    j'ai essayer ce code, il marche bien sur XP, mais sur Windows 10 le dossier est partagé mais sans aucune autorisation je comprends pas pourquoi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/10/2011, 18h40
  2. Commande net share sans préciser le lecteur (MS-DOS)
    Par Imagin0s dans le forum Windows
    Réponses: 1
    Dernier message: 07/06/2011, 17h42
  3. net share et autorisation en ligne de commande
    Par epc dans le forum Windows Serveur
    Réponses: 12
    Dernier message: 16/02/2011, 11h32
  4. équivalence asp.net/c# de serialize() de php
    Par mbello dans le forum ASP.NET
    Réponses: 3
    Dernier message: 23/06/2009, 23h16
  5. Commande Net Share - droits utilisateurs
    Par SurfingJeff dans le forum Windows XP
    Réponses: 1
    Dernier message: 03/10/2008, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo