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 :

Changement de droit d'un dossier [WD17]


Sujet :

WinDev

  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut Changement de droit d'un dossier
    Bonjour,

    J'aimerais changer les droits d'un dossier NTFS.

    La fonction WLangage fRepDroit remplacée par fRepAttribut permet de gérer l'attribut lecture seule mais ça m'aide pas.

    Du coup j'essaye d'utiliser la fonction SetSecurityInfo l'API advapi32 mais quelque chose m'échappe... on demande de fournir en premier paramètre l'handle du dossier... mais je ne vois pas du tout comment le fournir....
    Windev ne permet de récupérer le handle de ses propres objets uniquement... (il me semble) et de plus on ne peut pas "ouvrir" un répertoire comme on ouvre un fichier... donc comment pourrait il avoir un handle ? faut-il l'ouvrir dans l'explorer avant de récupérer son handle ? j'ai vu dans plusieurs posts (en c++ et c# je crois) que le handle pouvait être récupéré à la création du dossier mais pas avec fRepCrée en tout cas.... bref je suis sûrement à coté de la plaque....

    Si quelqu'un a un idée je lui en serais gré !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Autoréponse : regarde du coté de l'API SetNamedSecurityInfo qui ne prend pas de handle comme paramètre mais un string du path !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Si quelqu'un passe par là... j'ai un gros soucis que je ne comprends pas : sur mon poste de dév (win7) lors de l'appel de la fonction GetNamedSecurityInfo de la DLL advapi32.dll, Windev me retourne :
    Vous avez appelé la fonction API.
    La fonction 'GetNamedSecurityInfo' n'a pas été trouvée dans la DLL advapi32.dll

    Détail de l'erreur système :

    La procédure spécifiée est introuvable.
    (127)
    Quelqu'un peut me dire s'il reproduit le pb ?

    PS : j'en peux plus de ces APIs de ****

    PS2 : pas de réponse à mes posts d'une manière générale... je pue de la gueule ?
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    je pense que le sujet est tellement précis qu'il faut y avoir été confronté pour se mettre en situation.

    L'utilisation des api n'est vraiment pas courante chez moi donc je ne peux pas t'offrir beaucoup d'aide.

    Et si, on t'aime quand même

    Nicolas

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Merci Nicolas,
    Une réponse... j'en ai la larme à l'oeil....

    Je suis prêt à tout pour gérer les droits... y compris passer par une API mais je ne fais pas de fixette dessus ! s'il existe une autre solution.... ce qui ne semble pas être le cas.

    Si je trouve une solution je la posterais mais je crois que ça va finir dans une DLL C#... ce qui me fait chier c'est que c'est pour un installeur perso et ça m'embête d'exiger la présence du Framework .NET...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    Comme toujours difficile de savoir ce qui est mal écrit sans votre code, la réponse facile que je fais à chaque fois, c'est : "peut-être que c'est la virgule à la ligne 764 qui pose problème"

    Pouvez-vous postez le code qui pose problème ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Salut Ry_Yo,

    Merci pour ta réponse.

    Voici le code (inspiré par une veille source VB qui traînait chez nous...)

    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    ////////////QUELQUES CONSTANTES (toutes ne sont pas utile pour cette fonction
    CONSTANTE
    	//////////////////////////////////////CONSTANTE WINDOWS
    	//partage d'un repertoire
    	STYPE_DISKTREE = 0x0
    	STYPE_SPECIAL  = 0x80000000
     
    	//Type d'objet
    	SE_FILE_OBJECT  = 0x01
     
    	//Type de droit
    	OWNER_SECURITY_INFORMATION = 0x00000001
    	GROUP_SECURITY_INFORMATION = 0x00000002
    	DACL_SECURITY_INFORMATION = 0x00000004
    	SACL_SECURITY_INFORMATION = 0x00000008
    	UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000
    	UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000
    	PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000
     
    	//permissions
    	ACCESS_READ  = 0x1
    	ACCESS_WRITE = 0x2
    	ACCESS_CREATE= 0x4
    	ACCESS_EXEC  = 0x8
    	ACCESS_DELETE= 0x10
    	ACCESS_ATRIB = 0x20
    	ACCESS_PERM  = 0x40
     
    	//DROIT
    	GENERIC_ALL = 0x10000000
    	GENERIC_EXECUTE = 0x20000000
    	GENERIC_READ = 0x80000000
    	GENERIC_WRITE = 0x40000000
     
     
    	//
    	SET_ACCESS = 0X2
     
     
    	CONTAINER_INHERIT_ACE = 0x2
    	OBJECT_INHERIT_ACE = 0x1
     
     
    	//RETOUR
    	ERROR_SUCCESS = 0x0
    FIN
     
    TRUSTEE est une structure
    	pMultipleTrustee is entier système
    	MultipleTrusteeOperation is entier système
    	TrusteeForm is entier système
    	TrusteeType is entier système
    	ptstrName is UNICODE string
    END
     
    EXPLICIT_ACCESS est une structure
    	grfAccessPermissions is entier système
    	grfAccessMode is entier système
    	grfInheritance  is entier système
    	pTRUSTEE is TRUSTEE
    END
     
     
    ACL est un structure
    	AclRevision est entier sans signe sur 1 octet
    	Sbz1 est entier sans signe sur 1 octet
    	AclSize est entier sans signe sur 2 octets
    	AceCount est entier sans signe sur 2 octets
    	Sbz2 est entier sans signe sur 2 octets
    FIN
     
    ////////////PROCEDURE
    PROCEDURE FixeDroits(nomFichier est chaîne, utilisateur est chaîne, droits est entier = GENERIC_ALL)
     
    Myresult est entier système
    pSecDesc est entier système
    ea est EXPLICIT_ACCESS
    pNewDACL est entier système
    pOldDACL est entier  système
     
     
    NewACL est un ACL
    OldACL est un ACL
    SecDesc est un ACL
     
    pNewDACL = &NewACL
    pOldDACL = &OldACL
    pSecDesc = &SecDesc
     
    fs est objet Automation dynamique =  allouer un objet Automation "Scripting.FileSystemObject"
    d est objet Automation dynamique = fs>>GetDrive(fs>>GetFolder(nomFichier)>>Drive)
    sTypeSystem est chaîne
     
     
    sTypeSystem = d>>FileSystem
     
    SI sTypeSystem = "NTFS" ALORS
    	Myresult = API("advapi32.dll","GetNamedSecurityInfo",nomFichier, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, 0x0, 0x0, pOldDACL, 0x0, pSecDesc)
     
    	SI Myresult = ERROR_SUCCESS ALORS
    		ea.pTRUSTEE.ptstrName = &utilisateur
    		API("advapi32.dll","uildExplicitAccessWithName", &ea, &utilisateur, droits, SET_ACCESS, OUBinaire(CONTAINER_INHERIT_ACE,OBJECT_INHERIT_ACE))
     
    		Myresult = API("advapi32.dll","SetEntriesInAcl",1, ea, pOldDACL, pNewDACL)
    		SI Myresult = ERROR_SUCCESS ALORS
     
    			Myresult = API("advapi32.dll","SetNamedSecurityInfo",nomFichier, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, 0x0, 0x0, pNewDACL, 0x0)
    			SI Myresult = ERROR_SUCCESS ALORS
    				Info("SetNamedSecurityInfo succeeded")
    			SINON
    				Info("SetNamedSecurityInfo failed with error code : " + Myresult)
    			FIN 
     
    			VariableRAZ(NewACL)
     
    		SINON
    			Info("SetEntriesInAcl failed with error code : " + Myresult)
    		FIN 
     
    		VariableRAZ( SecDesc)
    	SINON
    		Info("GetNamedSecurityInfo failed with error code : "+Myresult)
    	FIN 
    FIN 
     
    libérer fs
    libérer d
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Regardes du côté de la commande Icacls sous dos.

  9. #9
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    C'était ma première piste mais je ne souhaite pas passer par des lignes de commandes car ça ne permet pas de gérer "proprement" le retour... et en plus il faut gérer les différents version d'OS (avant c'etait cacls sous XP... je crois).
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  10. #10
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    oui c'était cacls avant.

    Et en mettant dans un fichier le retour de la commande et en lisant le contenu du fichier ensuite ??? C'est du bricolage mais je ne vois pas mieux si tu veux avoir le retour d'une ligne de commande ...

  11. #11
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Ouais c'est une possibilité.... mais j'aimerais trouvé mieux... en fait je prépare un installeur perso et j'aimerais allé jusqu'au bout de la démarche de "travail propre" pour un truc en "one shot" ou à la portée limitée je me prendrais pas la tête.... après si je trouve pas mieux c'est vrai que j'ai cette solution de "secours"

    En tout cas un grand merci pour tes propositions.
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Alors sans avoir tester tout le code, pour votre erreur de fonction non-trouvé, c'est parce qu'il faut préciser le type d'encodage dans le nom de la fonction

    Requirements

    Minimum supported client
    Windows XP [desktop apps only]

    Minimum supported server
    Windows Server 2003 [desktop apps only]

    Header

    Aclapi.h

    Library

    Advapi32.lib

    DLL

    Advapi32.dll

    Unicode and ANSI names
    GetNamedSecurityInfoW (Unicode) and GetNamedSecurityInfoA (ANSI)
    Donc dans notre cas en ANSI ça sera bien remplacez vos occurrences de GetNamedSecurityInfo() par GetNamedSecurityInfoA() pour voir....

  13. #13
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Pffff.... faut vraiment que j'apprenne à lire l'aide... je crois que ça fait 2 fois que vous le faites à ma place Ry_Yo....

    En tout cas un grand merci... j'ai du ajouter un "A" à toutes les fonctions et ça marche ! reste plus qu'un problème de typage des paramètres.... ...eazy !

    Je laisse le post ouvert pour mettre la solution finale... des fois que...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Je vous rassure, c'est parce que je ne suis pas à l'aise avec les API que je prends le temps de lire et de comprendre chaque phrase de l'aide ^^

    Rien que la lecture de votre code, m'a fait faire plusieurs aller/retour avec google pour en comprendre la syntaxe ^^

  15. #15
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Et voilà !
    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
     
    PROCEDURE FixeDroits(nomFichier est chaîne, utilisateur est chaîne, droits est entier = GENERIC_ALL)
     
    Myresult est entier système
    pSecDesc est entier système
    ea est EXPLICIT_ACCESS
    pNewDACL est entier système
    pOldDACL est entier  système
     
     
    NewACL est un ACL
    OldACL est un ACL
    SecDesc est un ACL
     
    pNewDACL = &NewACL
    pOldDACL = &OldACL
    pSecDesc = &SecDesc
     
    fs est objet Automation dynamique =  allouer un objet Automation "Scripting.FileSystemObject"
    d est objet Automation dynamique = fs>>GetDrive(fs>>GetFolder(nomFichier)>>Drive)
    sTypeSystem est chaîne
     
     
    sTypeSystem = d>>FileSystem
     
    SI sTypeSystem = "NTFS" ALORS
    	Myresult = API("advapi32.dll","GetNamedSecurityInfoA",nomFichier, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, 0x0, 0x0, pOldDACL, 0x0, pSecDesc)
     
    	SI Myresult = ERROR_SUCCESS ALORS
    		ea.pTRUSTEE.ptstrName = &utilisateur
    		API("advapi32.dll","BuildExplicitAccessWithNameA", &ea, &utilisateur, droits, SET_ACCESS, OUBinaire(CONTAINER_INHERIT_ACE,OBJECT_INHERIT_ACE))
     
    		Myresult = API("advapi32.dll","SetEntriesInAclA",1, &ea, Null, &pNewDACL)
    		SI Myresult = ERROR_SUCCESS ALORS
     
    			Myresult = API("advapi32.dll","SetNamedSecurityInfoA",nomFichier, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, 0x0, 0x0, pNewDACL, 0x0)
    			SI Myresult = ERROR_SUCCESS ALORS
    				Info("SetNamedSecurityInfo succeeded")
    			SINON
    				Info("SetNamedSecurityInfo failed with error code : " + Myresult)
    			FIN 
     
    			VariableRAZ(NewACL)
     
    		SINON
    			Info("SetEntriesInAcl failed with error code : " + Myresult)
    		FIN 
     
    		VariableRAZ( SecDesc)
    	SINON
    		Info("GetNamedSecurityInfo failed with error code : "+Myresult)
    	FIN 
    FIN 
     
    libérer fs
    libérer d
    Un grand merci à vous deux pour vos interventions plus qu'utile !

    PS : outre le fait que je ne sois pas à l'aise avec les API j'ai aussi du mal avec l'anglais.... ça aide pas non plus !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  16. #16
    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
    Bonjour,
    Merci beaucoup pour ce poste ! ça m'aide énormément, mais comment enlever tout les droits à un utilisateur ?

  17. #17
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Bonjour,

    Vous trouverez les informations demandées sur le site MSDN :

    https://msdn.microsoft.com/fr-fr/lib...(v=vs.85).aspx
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  18. #18
    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
    Citation Envoyé par michel.souris Voir le message
    Bonjour,

    Vous trouverez les informations demandées sur le site MSDN :

    https://msdn.microsoft.com/fr-fr/lib...(v=vs.85).aspx
    Bonjour
    Merci de votre réponse, je trouve effectivement dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	//permissions
    	ACCESS_READ  = 0x1
    	ACCESS_WRITE = 0x2
    	ACCESS_CREATE= 0x4
    	ACCESS_EXEC  = 0x8
    	ACCESS_DELETE= 0x10
    	ACCESS_ATRIB = 0x20
    	ACCESS_PERM  = 0x40
    et notamment
    qui apparemment sert à supprimer tout les droits, mais comment appeler cette constante ? à quel niveau ?
    Quant au msdn, je ne comprends pas grand chose ! snif snif

  19. #19
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    A froid, je n'en sais rien.

    Il faudrait chercher et aujourd'hui je n'ai pas du tout le temps !

    Faites des tests (j'imagine que c'est en cours...) !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  20. #20
    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
    Citation Envoyé par michel.souris Voir le message
    A froid, je n'en sais rien.

    Il faudrait chercher et aujourd'hui je n'ai pas du tout le temps !

    Faites des tests (j'imagine que c'est en cours...) !
    Bonjour,
    Là je suis passé à Icacls, avec ajout total et suppression total des droits d'un utilisateur sur un dossier, quant à la récupération du retour je l'obtient avec un fichier log

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    icacls {Syntaxe} >> MonFichierLog.txt
    Mais j'avoue que la méthode que vous avez développé est largement plus propre.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [FTP] Changement de droits de fichier à distance
    Par hedgehog dans le forum Langage
    Réponses: 4
    Dernier message: 31/08/2006, 18h45
  2. [Répertoire] Donner des droits à un dossier
    Par peck dans le forum Langage
    Réponses: 4
    Dernier message: 19/03/2006, 16h32
  3. [VBS] droit NTFS sur dossier perso des utilisateurs
    Par Amandine62 dans le forum VBScript
    Réponses: 6
    Dernier message: 02/03/2006, 19h43
  4. Modifier droit d'un dossier en perl
    Par rafawel dans le forum Langage
    Réponses: 9
    Dernier message: 18/11/2005, 18h25
  5. Gérer les droits d'un dossier/RPC indisponible
    Par xant dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 22/08/2005, 13h47

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