CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[win32/C++] explorer un réseau microsoft

dnob700
dnob700
Niveau 10
18 octobre 2006 à 00:13:25

bonjour,

est-ce que quelqu´un connaitrait dans l´api win32 des fonctions pour explorer un réseau windows (à base de "Workgroup"), à la manière de FindFirstFile et FindNextFile (mais qui ne semble pas fonctionner pour un réseau).
j´ai rien trouvé dans la MSDN mais je suis sûr que ça doit exister (ne serait-ce que parce que windos y arrive).

merci d´avance.

Fvirtman
Fvirtman
Niveau 10
18 octobre 2006 à 14:18:30

ça pourrait etre intéressant :)
Hélas, je ne connais pas ces fonctions.

Mais je crois que ça utilise le protocole IPX (de microsoft)
Mais si tu les trouves je suis intéressé :-)

dnob700
dnob700
Niveau 10
18 octobre 2006 à 19:06:05

il fallait utiliser les fonction WNet*** du windows networking (j´ai trouvé tout à l´heure).

J´ai uploader un exemple qui est globalement tiré de la msdn pour énumérer les ressources d´un réseau (mais ça ne parcours pas les machines, ça donne juste leur nom et les services qu´elle propose (qui sont soient des fichiers soient des imprimantes en fait).

http://repository.sectionpc.info/C/rezo.cpp

Fvirtman
Fvirtman
Niveau 10
18 octobre 2006 à 22:54:48

Sympathique !!

j´essaierai ça demain au boulot ! (car chez moi, mon ordi n´est pas en réseau)
Une fois qu´on a le nom des ordis, a mon avis, il doit exister des fonctions pour lister les répertoires partagés et tout, tres intéressant tout ça :-)

Fvirtman
Fvirtman
Niveau 10
19 octobre 2006 à 16:30:21

GG !
J´ai essayé au boulot (en modifiant un peu car j´ai pas advio), ça énumere bien toutes les machines, avec les lecteurs partagés.

Sympathique :)
Apres, en fait, ça se manipule comme un repertoire local je pense, ça doit etre permis de faire :

fopen("\\collegue\truc\machin.txt","r");
Et du coup, tout roule :)

avec io.h, on doit pouvoir faire des findfirst findnext sur les fichiers de la meme façon qu´une requete locale :-)

dnob700
dnob700
Niveau 10
19 octobre 2006 à 18:29:35

non, le problème de la syntaxe \\collègue\truc\... c´est qu´elle ne contient pas le nom du domaine, mais seulement celui de la machine.

je n´ais pas encore essayé, mais la seule solution méthode que j´ai trouvé (il y en a peut-être d´autre), est d´appeler la fonction WNetAddConnection2 avec en paramètre la structure LPNETRESOURCE (dont les seuls paramètres interessants sont ceux imprimés par mon programme (et non pas les valeurs binaire qui trainent partout) et un nom de lecteur et qui va créer un lecteur associé à cette ressource.

Là, il pourra être parcouru avec les fonctions standard.

dnob700
dnob700
Niveau 10
20 octobre 2006 à 16:09:28

J´ai mis à jour mon programme, maintenant il indexe les fichiers qu´il trouve sur le réseau. C´est a dire qu´il recopie en local l´arborescence du réseau (avec les fichier, mais ceux-ci n´ont que leur attributs (nom, caché ou pas, etc.) mais pas leur contenu).

Il vaut mieux le lancer sur un disque NTFS, car en fat c´est pas terrible vu le nombre de fichier créé.

même adresse :
http://wall.sectionpc.info/C/rezo.cpp

Pour faire tourner le programme, même s´il crée un sous dossier Rezo là où il se trouve pour indexer le réseau, je conseille de le faire tourner dans un répertoire vide, car j´ai l´impression qu´en local, de temps en temps il remonte en cran trop haut dans l´arborescence pour continuer à écrire des données. Je ne sais pas d´où ça vient.

Si ça continue (i.e., je ne trouve pas la cause) je modifierais le truc pour que le programme gère le nom complet du dossier local et non pas des chemins relatifs (dont les erreurs ne peuvent pas être corrigé).

En bonus, il y a un paramètre en haut pour desactiver l´utilisation de advio.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment