Partager un repertoire windows

Demandé et répondu par KPiTN le 27-Sep-2004 12:14

Partager un repertoire windows

On va utilisez l'api netapi32.dll

plus d'info : NetShareAdd et SHARE_INFO_2

//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

Cette Q&R a été trouvée sur WDForge.org : http://old.wdforge.org/modules/smartfaq/faq.php?faqid=6