Salut,
voici une fonction qui te permet de listes les ressources partagées Tu as besoin d'un champ arbre avec le nom Arbre1
Tu peux placer la procédure Enum() dans un bouton par exemple Lors de cet appel, tu peux passer comme premier paramètre le nom d'une ressource réseau. Par exemple le nom d'un groupe de travail: "WORKGROUP" ou "MSHOME" par exemple. Ou tu peux carément passer le nom d'un poste de travail ex:\\Poste1 Le premier paramètre n'est pas sensible à la case. Ne passe aucun paramètre pour le 2e paramètre. Il sert pour un appel récursif à la fonction
PROCEDURE Enum(LOCAL strDepart="",iPtrEnumPrecedent=-1) RESOURCE_GLOBALNET est un entier = 2 RESOURCETYPE_ANY est un entier = 0 RESOURCEUSAGE_CONTAINER est un entier = 2
NETRESOURCEA est une structure dwScope est un entier //Type C : DWORD dwType est un entier //Type C : DWORD dwDisplayType est un entier //Type C : DWORD dwUsage est un entier //Type C : DWORD lpLocalName est un entier //Type C : LPSTR lpRemoteName est un entier //Type C : LPSTR lpComment est un entier //Type C : LPSTR lpProvider est un entier //Type C : LPSTR FIN strSuite est une chaîne strRemote est une chaîne
iNb est un entier = -1 iTaille est un entier = 16384 bBuff est un Buffer sur 16384
iPtrEnum est un entier iRetour est un entier
netrTemp est un NETRESOURCEA
iCpt est un entier SI iPtrEnumPrecedent = -1 ALORS iPtrEnumPrecedent = &netrTemp SI strDepart <> "" ALORS strRemote = strDepart+Caract(0) FIN netrTemp:lpRemoteName = &strRemote FIN iRetour = API("Mpr","WNetOpenEnumA",RESOURCE_GLOBALNET,RESOURCETYPE_ANY,0,iPtrEnumPrecedent,&iPtrEnum) SI iRetour = 0 ALORS iRetour = API("Mpr","WNetEnumResourceA",iPtrEnum,&iNb,&bBuff,&iTaille) SI iRetour = 0 ALORS POUR iCpt = 1 A iNb strSuite = "" Transfert(&netrTemp,&bBuff+(Dimension(netrTemp)*(iCpt-1)),Dimension(netrTemp)) SI ETBinaire(netrTemp:dwUsage,RESOURCEUSAGE_CONTAINER) = RESOURCEUSAGE_CONTAINER ALORS SI strDepart <> "" ALORS strSuite = strDepart+TAB FIN strSuite += ChaîneRécupère(netrTemp:lpRemoteName,crAdresseASCIIZ) Enum(strSuite,&netrTemp) ArbreAjoute(Arbre1,strSuite) SINON SI strDepart <> "" ALORS strSuite = strDepart+TAB FIN strSuite += ChaîneRécupère(netrTemp:lpRemoteName,crAdresseASCIIZ) ArbreAjoute(Arbre1,strSuite) FIN FIN FIN API("mpr","WNetCloseEnum",iPtrEnum) SINON Erreur(ErreurInfo()) FIN
Mathieu |