Bonjour,
j'aimerai savoir comment faire pour pouvoir explorer sur toutes les machines de mon reseau local.
l'objectif etant de pouvoir selectionné un répertoire pour en faire une copie vers une autre machine.
merci d'avance
Bonjour,
j'aimerai savoir comment faire pour pouvoir explorer sur toutes les machines de mon reseau local.
l'objectif etant de pouvoir selectionné un répertoire pour en faire une copie vers une autre machine.
merci d'avance
Bonjour,
je ne connais pas d'autre solution que d'utiliser les commandes DOS (redirigé dans un fichier ou dans une variable voir AbelMan
http://www.developpez.net/forums/vie...&highlight=dos)
1) voir tous les domaine ou groupe de travail, récupérer et classer les domaine dans un tableau
2) voir tous les PC de chaque de domaine
avec3) pour chaque PC
Code : Sélectionner tout - Visualiser dans une fenêtre à part net view /Domainpour les ressources partagées
Code : Sélectionner tout - Visualiser dans une fenêtre à part net view MonPC
4) Avec les FilesystemObject (scrrun.dll ou Microsoft scripting runtime), explorer tous les répertoires
Moi je vois une solution qui consiste à utiliser les APIEnvoyé par AdHoc
Le code ira dans la FAQ un de ces jours...
Comment obtenir les noms de toutes les machines sur un domaine Windows?
Le code suivant est à mettre dans un module:
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 Option Explicit 'Definition des constantes Private Const MAX_PREFERRED_LENGTH As Long = -1 Private Const NERR_SUCCESS As Long = 0& Private Const ERROR_MORE_DATA As Long = 234& Private Const SV_TYPE_ALL As Long = &HFFFFFFFF Private Const SV_PLATFORM_ID_OS2 As Long = 400 Private Const SV_PLATFORM_ID_NT As Long = 500 'Masque pour obtenir la version OS Majeure a partir de la variable version globale Private Const MAJOR_VERSION_MASK As Long = &HF Private Type SERVER_INFO_100 sv100_platform_id As Long sv100_name As Long End Type Private Declare Function NetServerEnum Lib "netapi32" _ (ByVal servername As Long, _ ByVal level As Long, _ buf As Any, _ ByVal prefmaxlen As Long, _ entriesread As Long, _ totalentries As Long, _ ByVal servertype As Long, _ ByVal domain As Long, _ resume_handle As Long) As Long Private Declare Function NetApiBufferFree Lib "netapi32" _ (ByVal Buffer As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" _ Alias "RtlMoveMemory" _ (pTo As Any, uFrom As Any, _ ByVal lSize As Long) Private Declare Function lstrlenW Lib "kernel32" _ (ByVal lpString As Long) As Long Public Function GetServers(sDomain As String) As String 'liste de tous les serveurs dans un domaine Dim bufptr As Long Dim dwEntriesread As Long Dim dwTotalentries As Long Dim dwResumehandle As Long Dim se100 As SERVER_INFO_100 Dim success As Long Dim nStructSize As Long Dim cnt As Long Dim resultat As String nStructSize = LenB(se100) 'la liste des noms est obtenue avec la fonction NetServerEnum success = NetServerEnum(0&, _ 100, _ bufptr, _ MAX_PREFERRED_LENGTH, _ dwEntriesread, _ dwTotalentries, _ SV_TYPE_ALL, _ 0&, _ dwResumehandle) If success = NERR_SUCCESS And _ success <> ERROR_MORE_DATA Then 'si tout se passe bien For cnt = 0 To dwEntriesread - 1 CopyMemory se100, ByVal bufptr + (nStructSize * cnt), nStructSize 'on scanne le buffer en memoire et pour chaque entrée, conversion en String resultat = resultat & GetPointerToByteStringW(se100.sv100_name) & "|" Next End If 'nettoyage du buffer que le système a reservé pour la liste des noms Call NetApiBufferFree(bufptr) 'on retourne le string contenants les noms separés par des "|" GetServers = resultat End Function Public Function GetPointerToByteStringW(ByVal dwData As Long) As String 'fonction auxilliare qui recoit un pointeur vers une chaine dans un buffer interne 'Windows et la convertit en String exploitable en VB Dim tmp() As Byte Dim tmplen As Long If dwData <> 0 Then tmplen = lstrlenW(dwData) * 2 If tmplen <> 0 Then ReDim tmp(0 To (tmplen - 1)) As Byte CopyMemory tmp(0), ByVal dwData, tmplen GetPointerToByteStringW = tmp End If End If End Function
Ensuite, on appelle la fonction par
qui retourne la liste des noms separés par des "|"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim maliste as String maliste=GetServers(vbNullString)
(on peut faire un split ensuite)
Ensuite, une fois qu'on a le nom de la machine, on peut effectivement utiliser FSO pour explorer...
merci beaucoup !!!
maintenant y a plus qu'a mettre en pratique l'api !
le sujet ressort un peu de la lumiere et moi de mon impasse !!
encor merci
merci grafikm_fr pour cette solution nettement plus propre que la mienne (j'avais attendu quelque jour avant de la poster).
J'en ai profité pour corriger ma réponse et surtout mes programmes .
Et si on est sous windows 98, on fait comment ?
La fonction NetServerEnum() n'étant disponible que sur Windows NT ou supérieur, ce code ne fonctionne pas sur Windows 9x.
merci
Bonjour
pour le code q'on devai coller dans le module et appeler la procédure dans le form
pour l'evenement est ce que ça sera le form load ou quoi ???
mais qu'est ce qu'on doit inserer comme contrôl : un boutton ou ???
Merci d'avance...
bah tu fais comme tu le sents !Envoyé par fares3650
Tu declares un string ... et t'y mets ce que te retourne la fonction GetServers(vbNullString)
j'ai mis ce code mais qu'on je clique ça ne donne rien même pas une erreur...\\
----------------------------
Dim maliste As String
Private Sub Command1_Click()
maliste = GetServers(vbNullString)
End Sub//------------------------------------------------------
sinom pour le string comment je le fait ???(arhie null en vb)
Merci d'avance...........
Normal ... y'a pas d'erreurEnvoyé par fares3650
C'est juste que tu n'affiches pas ta string ... donc pas d'appercu ...
mets MsgBox maliste à la suite, tu verras le resultats !
T'as pas une idée sur Comment modifié et inserer et modifié un data grid en vb …
Merci d'avance
c'est pas le bon sujet ...Envoyé par fares3650
Sinon, quelqu'un sait lister les postes d'un reseau sous 98 ?!
Par la bonne vieille méthode bourrin: tu executes "net view", tu rediriges la sortie dans un fichier texte, tu l'ouvres et tu recuperes la liste des machines...Envoyé par oazar
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager