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
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|