Nom des ordinateurs [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
20 octobre 2005
-
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
-
ba voila, j'essaye de faire un ti progr qui permet d'agir sur les pc d'un réseau local. Au début jpensais mettre dans les items d'un Combobox tout les pc de mon réseau, et ensuite pouvoir les selectionner... Mais jveux etre un peu plus exigant lol.j'aimerais que le prog trouve tout seul les noms des pcs connéctés sur le réseau, et qu'il les mettent ds les items du combobox en question...
Est-ce que qqun pourrais m'aider ??? paske là je rame un peu, jviz ptetr un peu haut pour mon niveau lol..
Merci à vous !!!

1 réponse

Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
Salut,
Pour un réseau du type Microsoft, tu peux utiliser les fonctions
WNetOpenEnum et WNetEnumResource :

Procedure TForm1.Enumeration( lpnr : PNetResourceA);
type
  Table = Array[0..10000] of NetResource;
const
  cbBuffer : Dword =16383;
  cbEntries : Dword  = dWord(-1);
var
  i,Resu : DWord;
  Hdl : THandle;
  lpnrloc : ^Table ;
  s : string;
begin
  cbEntries:=Dword(-1);
  resu := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, lpnr, Hdl);
  New(lpnrloc);
  resu := WNetEnumResource(Hdl, cbEntries ,@lpnrloc[0] ,cbBuffer);
  if resu = 0 then
    begin
      for i:=0 to cbEntries -1 do
        begin
          s:=lpnrloc[i].lpRemoteName;
          if (s<>'') and (Copy(s,1,2)='\\') and (pos('\',copy(s,3,length(s)))=0) then
            begin
              delete(s,1,2);
              Combobox1.Items.Add(s);
            end;
          Enumeration(@lpnrloc[i]);
        end;
    end;
  Dispose(lpnrloc);
  WNetCloseEnum(Hdl);
end;


Ken@vo
____________________
Code, Code, Codec !