IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Récuperer les nom d'ordinateur dans un réseau


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut Récuperer les nom d'ordinateur dans un réseau
    Bonjour à tous,
    Sur mon application, je souhaite avoir une liste déroulante qui puisse me ramener tout les nom d'ordinateur disponible dans un réseau.

    Est ce que quelqu'un pourrait il m'aider?

    Merci d'avance pour toute proposition.

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Es-tu aller voir dans la FAQ :
    Comment retrouver la liste des ordinateurs d'un certain type (serveur, workstation, ...) ?
    Comment lister les ressources réseau ?

    Faudra surement faire un peu le tri dans tout ça mais c'est déjà une bonne piste je pense

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut
    Merci ero-sennin pour la réponse,
    J'ai déjà vu ce F.A.Q, mais j'ai pensé que je pourrai avoir quelque chose qui me récupèrera directement les noms des ordinateurs.
    De toute façon je vais creuser encore plus sur ces deux topics, en attendant si quelqu'un a déjà eu a faire a ça, qu'il me fasse signe.

    Merci beaucoup.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 717
    Billets dans le blog
    65
    Par défaut
    pour avoir les noms des pc dans un browser utilises l'API
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function SHBrowseForFolder
    (var BrowseInfo: TBrowseInfo): PItemIDList; stdcall;
    avec BIF_BROWSEFORCOMPUTER
    je me suis déjà inspiré de cet article ici pour
    cela

    maintenant une autre solution c'est de passer par WNetEnumResource
    dont je n'ai pas encore compris les subtilités . En tout cas voici un code qui me permet de lister dans un memo (memo1) les nom des //PC connectés
    (je n'ai pas encore tester sur un gros réseau, cela ne saurait tarder)

    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
     
    procedure GetNetwork(lpNetResource:PNetResourceW);
    type
      PNetResourceArray = ^TNetResourceArray;
      TNetResourceArray = array[0..MaxInt div SizeOf(TNetResource) - 1] of TNetResource;
    var neh,cnt,size:cardinal;
        netres:integer;
        res:PNetResourceArray;
        i:integer;
        s:string;
        itc:TTreeNode;
    begin
       { Initialization }
       cnt := $FFFFFFFF;
       Size := 50 * SizeOf(TNetResource);
       { Opening the enumeration }
       if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,0, lpNetResource, neh) = NO_ERROR then
       try
          { Allocating memory }
          GetMem(Res, Size);
          { Fetching the net resources }
          netres := WNetEnumResource(neh, cnt, res, size);
          { Is there an error }
          if netres = NO_ERROR then
          begin
             { If not browse through the fetxhed net resources }
             for i := 0 to cnt - 1 do
                { Controlling if usage is not a network share }
               if not (res^[i].dwUsage in [1,5]) then
               begin
                 if (lpnetresource<>nil) 
                       AND (res^[i].dwDisplayType <>RESOURCEDISPLAYTYPE_DOMAIN) then
                    Memo1.Lines.Add(res^[i].lpRemoteName);
                   GetNetwork(@res^[i]);
               end;
          end;
       finally
          { Freeing memory }
          FreeMem(Res, Size);
       end;
       { Closing the enumeration }
       WNetCloseEnum(neh);
    end;
     
    begin 
      GetNetWork(nil);
    end;
    cette source ,modifiée pour mes besoins , vient du site de codegear
    une chose certaine c'est sa rapidité pour ce qui s'agit du test réseau d'où mon choix voir post

    EDIT : Je viens de l'apercevoir que cela s'approche de la FAQ de Laurent Dardenne ou peut s'en faut :quoi: cependant , pas besoin de l'unité LM , juste windows

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 972
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 972
    Par défaut
    Une autre source utilisant WNetEnumResource qui intègre la récursion dans le cas de container et la limitation aux types d'éléments qui nous intéressent (plus rapide). Les différents paramètres possibles sont listés ici.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut
    Merci a tous, j'ai réussi et ça marche .
    J'ai utilisé la méthode de Andnotor.

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 18/05/2010, 19h15
  2. Réponses: 2
    Dernier message: 03/09/2008, 18h14
  3. Changer les noms de colonnes dans un formulaire
    Par cakeby dans le forum Access
    Réponses: 1
    Dernier message: 06/01/2006, 22h32
  4. stocker les nom de fichiers dans une base
    Par Corben dans le forum Windows
    Réponses: 2
    Dernier message: 04/01/2006, 16h50
  5. Réponses: 7
    Dernier message: 04/11/2004, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo