Accueil > Forum > > > > Partages Réseau
Partages Réseau
samedi 19 novembre 2005 à 19:35:35 |
Partages Réseau

mamounette
|
Salut,
j'aurai aimé savoir de quelle façon je pourrai lister les différents partages présents sur les machines d'un réseau en C#.
J'avais pensé à récupérer les adresses ip des machines se trouvant sur
le même réseau que la machine sur laquelle on lance l'application mais
après comment trouver les dossiers partagés ?
Merci d'avance.
|
|
samedi 19 novembre 2005 à 19:53:39 |
Re : Partages Réseau

coq
|
Salut, Tu dois te servir de la méthode NetShareEnum des API. /* coq MVP Visual C# */
|
|
dimanche 20 novembre 2005 à 00:09:19 |
Re : Partages Réseau

mamounette
|
Merci !
Par contre quelle(s) directive(s) utiliser ? Car à l'éxécution de mon programme, l'erreur suivante m'est renvoyée:
"The type or namespace name 'DWORD' could not be found (are your missing a using directive or an assemblye reference ?)"
Il en est de même pour LPTSRT, TCHAR et NET_API_STATUS.
J'ai beau chercher sur le net, je ne trouve que les librairies à
inclure en C++ (include <lm.h>) mais jamais la correspondance en
C#.
|
|
dimanche 20 novembre 2005 à 01:29:21 |
Re : Partages Réseau

mamounette
|
Finalement , j'ai utilisé ça:
[DllImport("Netapi32.dll", CharSet=CharSet.Unicode)]
private static extern int NetShareEnum(
StringBuilder ServerName,
int level,
ref IntPtr bufPtr,
uint prefmaxlen,
ref int entriesread,
ref int totalentries,
ref int resume_handle
);
avec la diretive using System.Text.
Il me reste à résoudre le problème du type TCHAR
|
|
dimanche 20 novembre 2005 à 06:55:35 |
Re : Partages Réseau

Lutinore
|
Salut, ton prototype managé est correct, quel est le problème avec le type TCHAR ?
Le type TCHAR corresponds à un char sur 1 octect dans un environnement Ansi et 2 octects dans un environnement Unicode, dans l'appel de platforme pour remplacer un tableau ou un pointeur de type TCHAR tu peux utiliser le type string ou StringBuilder c'est le paramètre CharSet de l'attribt DllImport qui definit comment marshaler le type char.
|
|
dimanche 20 novembre 2005 à 11:17:31 |
Re : Partages Réseau

coq
|
D'ailleurs ici tu peux mettre string pour ServerName, comme il est uniquement "In".
/* coq MVP Visual C# */
|
|
dimanche 20 novembre 2005 à 13:34:58 |
Re : Partages Réseau

APWEB
|
Regarde à cette adresse il y a un example d'utilisation en
C"# : http://pinvoke.net/default.aspx/netapi32.NetShareEnum
AP
|
|
dimanche 20 novembre 2005 à 13:40:57 |
Re : Partages Réseau

mamounette
|
Voici finalement mon code .
Tout ceci s'exécute bien, il n'y a plus d'erreurs , cependant, rien ne s'affiche !!!
using System;
using System.Net;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
using System.Text;
public class share{
[DllImport("Netapi32.dll", CharSet=CharSet.Unicode)]
private static extern int NetShareEnum(
String ServerName,
int level,
ref IntPtr bufPtr,
//uint prefmaxlen,
ref int entriesread,
ref int totalentries,
ref int resume_handle
);
public struct SHARE_INFO_2{
[MarshalAs(UnmanagedType.LPWStr)]
public string shi2_netname;
public uint shi2_type;
[MarshalAs(UnmanagedType.LPWStr)]
public string shi2_remark;
public Int32 shi2_permissions;
public Int32 shi2_max_uses;
public Int32 shi2_current_uses;
[MarshalAs(UnmanagedType.LPWStr)]
public string shi2_path;
[MarshalAs(UnmanagedType.LPWStr)]
public string shi2_passwd;
}
public static void Main () {
String Servername = null;
int level = 2;
//uint prefmaxlen =MAX_PREFERRED_LENGTH;
int entriesread=0;
int totalentries=0;
int resume_handle=0;
IntPtr bufPtr =IntPtr.Zero;
int ret= NetShareEnum(Servername,level,ref bufPtr,ref entriesread,ref totalentries,ref resume_handle);
IntPtr currentPtr = bufPtr;
for( int i =0; i< entriesread;i++)
{
SHARE_INFO_2
shio =
(SHARE_INFO_2)Marshal.PtrToStructure(currentPtr,typeof(SHARE_INFO_2));
Console.Out.WriteLine("Partage: "+shio.shi2_netname+"\n");
}
}
}
|
|
dimanche 20 novembre 2005 à 13:59:02 |
Re : Partages Réseau

coq
|
Normal : pas mal la mise en commentaire du paramètre... Ce n'est pas une option, tu dois conserver la méthode tel quel... Et tu ne dois pas non plus éliminer l'appel de NetApiBufferFree.
private const uint MAX_PREFERRED_LENGTH = 0xFFFFFFFF;
La ligne qui effectue le "mouvement" vers la structure duivante dans le buffer est importante elle aussi : int nStructSize = Marshal.SizeOf(typeof(SHARE_INFO_2)); ... currentPtr = new IntPtr(currentPtr.ToInt32() + nStructSize);
/* coq MVP Visual C# */
|
|
dimanche 20 novembre 2005 à 14:14:21 |
Re : Partages Réseau

mamounette
|
Merci encore une fois Coq !!
using System;
using System.Net;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
using System.Text;
public class share{
[DllImport("Netapi32.dll", CharSet=CharSet.Unicode)]
private static extern int NetShareEnum(
String ServerName,
int level,
ref IntPtr bufPtr,
uint prefmaxlen,
ref int entriesread,
ref int totalentries,
ref int resume_handle
);
[DllImport("Netapi32.dll", SetLastError=true)]
static extern int NetApiBufferFree(IntPtr Buffer);
public struct SHARE_INFO_2{
[MarshalAs(UnmanagedType.LPWStr)]
public string shi2_netname;
public uint shi2_type;
[MarshalAs(UnmanagedType.LPWStr)]
public string shi2_remark;
public Int32 shi2_permissions;
public Int32 shi2_max_uses;
public Int32 shi2_current_uses;
[MarshalAs(UnmanagedType.LPWStr)]
public string shi2_path;
[MarshalAs(UnmanagedType.LPWStr)]
public string shi2_passwd;
}
public static void Main () {
//private const uint MAX_PREFERRED_LENGTH = 0xFFFFFFFF;
String Servername = null;
int level = 2;
uint prefmaxlen = 368880;
int entriesread=0;
int totalentries=0;
int resume_handle=0;
IntPtr bufPtr =IntPtr.Zero;
int ret= NetShareEnum(Servername,level,ref
bufPtr,prefmaxlen,ref entriesread,ref totalentries,ref resume_handle);
IntPtr currentPtr = bufPtr;
int nStructSize = Marshal.SizeOf(typeof(SHARE_INFO_2));
for( int i =0; i< entriesread;i++)
{
SHARE_INFO_2 shio =
(SHARE_INFO_2)Marshal.PtrToStructure(currentPtr,typeof(SHARE_INFO_2));
Console.Out.WriteLine("Partage: "+shio.shi2_netname+"\n");
currentPtr = new IntPtr(currentPtr.ToInt32() + nStructSize);
}
NetApiBufferFree(bufPtr);
}
}
|
|
Cette discussion est classée dans : réseau, machines, partages
Répondre à ce message
Sujets en rapport avec ce message
liste du réseau [ par penchu ]
Bonjour, j'ai fait récemment un programme Net Sender 1.0 qui permet de d'envoyer les messages sur le réseau. J'ai envie de pousser le bouchon un peu p
Connexion sur un réseau [ par kichou86 ]
Bonjour tout le monde !!!Je travaille actuellement sur une application qui doit permettre de se connecter sur un réseau et recupérer toutes les machin
graphe bayesien [ par dadidadidadi ]
bonjour!je suis entrain de développer ,un éditeur d'un réseau bayésien , j'ai un problème lorsque copier le graphe du réseau dans une autre fenêtre,v
récupérer des informations des machines d'un même groupe de travail [ par sandra22 ]
Salut,Je cherche à récupérer quelques informations relatives aux machines appartenant à un même groupe de travail sachant que ce nom est saisi par l'u
dessiner sur un graphe [ par adsana ]
bonjourje suis entrain de faire un code qui simule un réseau et affiche le schéma du réseau sous forme d'une image bitmap.mais comme j'ai besoin d'agi
Evènement distant en réseau [ par kikiokiller ]
Bonjour à tous, Dans le cadre d'une application client serveur que j'essaie de réaliser depuis 3 semaines maintenant, je rencontre un problème concern
[BAR]masque de sous reseau [ par foula12 ]
bonjour <link rel="File-Lis
Récuperer des informations sur des machines distantes en WMI [ par kichou86 ]
Bonjour, Je suis actuellement sur un projet qui permet de récupérer des informations sur des machines à distance à l'aide des script WMI en C#. J'arri
Etat du resau [ par iceman64b ]
Je cherche à faire un outil pour vérifier la connectivité d'un réseau (je veux savoir si le réseau se comporte normalement ou pas). Le programme aura
Socket + Réseau [ par emmanuel9 ]
Bonjour à tous, J'ai une question technique concernant les jeux réalisés en réseaux : Si l'on imagine un jeux en réseau de ping pong avec deux raqu
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|