DWORD??! [Résolu]

Messages postés
100
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
19 septembre 2005
- - Dernière réponse : cs_Douns
Messages postés
100
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
19 septembre 2005
- 24 août 2005 à 16:05
Bonjour

Je fais un appel à une api (function NetShareGetInfo dans netapi32.dll) afin de trouver les permissions d'un partage réseau.

L'api renvoi un réponse du type suivant :

Private Type SHARE_INFO_502
shi502_netname As Long ' LPWSTR shi502_netname;
shi502_type As Long ' DWORD shi502_type;
shi502_remark As Long ' LPWSTR shi502_remark;
shi502_permissions As Long ' DWORD shi502_permissions;
shi502_max_uses As Long ' DWORD shi502_max_uses;
shi502_current_uses As Long ' DWORD shi502_current_uses;
shi502_path As Long ' LPWSTR shi502_path;
shi502_passwd As Long ' LPWSTR shi502_passwd;
shi502_reserved As Long ' DWORD shi502_reserved;
shi502_security_descriptor As Long ' PSECURITY_DESCRIPTOR shi502_security_descriptor;
End Type

Ici shi502_permissions m'interesse particulièrement.

Seulement voila, c'est normalement un DWORD qui est en long et je n'arrive pas à le déchiffrer!
J'ai trouvé sur msdn de krosoft que les réponses possibles sont : ACCESS_READ, ACCESS_WRITE, ACCESS_CREATE, ACCESS_EXEC, ACCESS_DELETE, ACCESS_ATRIB, ACCESS_PERM, ACCESS_ALL. Mais tout ec que j'ai en réponse, c'est du long!!!

Je me doute que je dois faire une convertion, mais je en vois pas comment.

J'ai trouvé la méthode pour les LPWSTR ( en utilisant les functions lstrlenW et lstrcpyW de kernel32) mais pour les DWORD je patoge complet!

Merci d'avance pour votre aide!
Douns
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
100
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
19 septembre 2005
3
Merci
En fait j'ai trouvé encore mieux! :p

L'api ADVAPI32.dll!

Je posterais surement bientôt ma source!
Un prog qui parcour le réseau à la recherche des partages et des droits appliqués dessus!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
10
0
Merci
Salut, va voir Cette Page tu devrais y trouver réponse à ta question.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
100
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
19 septembre 2005
0
Merci
C'est sur cette page que j'ai trouvé l'api...
Et j'y vois pas ma réponse...
Une autre idée?
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
0
Merci
Salut, c'est ces valeurs que tu veux ?

// C/C++

#define ACCESS_NONE 0
#define ACCESS_READ 0x01
#define ACCESS_WRITE 0x02
#define ACCESS_CREATE 0x04
#define ACCESS_EXEC 0x08
#define ACCESS_DELETE 0x10
#define ACCESS_ATRIB 0x20
#define ACCESS_PERM 0x40

#define ACCESS_ALL ( ACCESS_READ | \
ACCESS_WRITE | \
ACCESS_CREATE | \
ACCESS_EXEC | \
ACCESS_DELETE | \
ACCESS_ATRIB | \
ACCESS_PERM \
)
Messages postés
100
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
19 septembre 2005
0
Merci
Peut etre bien, il faut quer j'essaye cela au boulot lundi, juste une question alors :
ACCESS_ALL correspond à quoi

ce qui m'étone c'est que j'ai des réponses du styles 1656329...
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
0
Merci
Salut, tu l'auras remarqué ce sont des valeurs en hexadécimale, ACCESS_ALL ( 0x7F ) est une combinaison avec l'opérateur OU binaire. Les valeurs peuvent être combinées pour mettre plusieurs valeurs dans un seul entier, par contre 1656329 ca me semble une valeur invalide !
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
Messages postés
100
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
19 septembre 2005
0
Merci
Je vais m'interesser a tous cela lundi, je voçus préviens après. Une fois que ce code fonctionnera je le posterais ici car je pense que cela pourrait etre utile! ^^

Et pour la valeur 1656329 c'ets normal, c'ets un truc que j'ai dit au pif. Mes sources sont sur mon lieu d etravail.

Promis, je vous tient au courant!

Merci
Messages postés
100
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
19 septembre 2005
0
Merci
Bon, au final, je n'arrive pas à faire fonctionner cette api, je vais donc utiliser les wmi car je me suis rendu compte d'autre chose :

On ne récupère les droits que de la session en cours (par exemple si je suis loggué sous admin, je ne verra pas les droits de l'utilisateurs beta).

Je vais donc faire un script vbs qui s'executera sur chaque poste au démarrage et qui vérifira les droits sur chaque ordi pour les enregistrer ensuite dans une BD.