Comment obtenir une liste de tous les canaux nommés ouverts dans Windows?
Question
Existe-t-il un moyen simple de vérifier si votre canal nommé fonctionne correctement? Je veux m'assurer que les données que j'envoie à partir de mon application sont effectivement envoyées. Existe-t-il un moyen simple et rapide d’obtenir une liste de tous les tuyaux nommés?
La solution
Vous pouvez les afficher avec Explorateur de processus de sysinternals. Utilisez les options " Rechercher - > Rechercher une poignée ou une DLL ... " et entrez le motif "\ Device \ NamedPipe \". Il vous montrera quels processus ont quels tuyaux s'ouvrent.
Autres conseils
Essayez plutôt le suivant:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
Dans la console Windows Powershell, tapez
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
Si la version de votre système d'exploitation est supérieure à Windows 7, vous pouvez également taper
.
get-childitem \\.\pipe\
Utilisez pipelist.exe de Sysinternals.
C #:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
Je suis tombé sur une fonctionnalité de Chrome qui répertoriait tous les canaux nommés ouverts en accédant à "fichier: //.//pipe//"
".Comme je n'arrive pas à trouver de référence à cela et que cela m’a été très utile, j’ai pensé que je pourrais partager.
Le deuxième canal a été interprété par ce site Web lors de sa soumission ... Vous avez besoin de deux barres obliques inverses au début. Veillez donc à utiliser System.IO.Directory.GetFiles (@ " \\. \ Pipe \ ").
Notez que j'ai vu cet appel de fonction lancer un "caractère illégal dans le chemin". exception lorsque l'un des canaux de ma machine avait des caractères non valides. PipleList.exe a bien fonctionné, donc cela ressemble à un bogue dans le code .net de MS.