Nom des ordinateurs

Résolu
DREAMER2208 Messages postés 17 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 20 octobre 2005 - 23 déc. 2004 à 16:13
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 - 25 déc. 2004 à 09:02
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

cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
25 déc. 2004 à 09:02
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 !
3
Rejoignez-nous