Existe-t-il un moyen facile de tester si votre tube nommé fonctionne correctement? Je veux m'assurer que les données que j'envoie de mon application sont effectivement envoyées. Y at-il un moyen rapide et facile d'obtenir une liste de tous les tuyaux nommés?Comment puis-je obtenir une liste de tous les canaux nommés ouverts dans Windows?
Répondre
Vous pouvez afficher ceux-ci avec Process Explorer à partir de sysinternals. Utilisez l'option "Find -> Find Handle ou DLL ..." et entrez le modèle "\ Device \ NamedPipe \". Il vous montrera quels processus ont quels tuyaux s'ouvrent.
Utilisez pipelist.exe de Sysinternals.
Voir aussi handle.exe de sysinternals qui montrera presque toutes les choses qui ont un handle ouvert. – JimR
Poignée http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx –
C#:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
Vous ... Absolutley ROCK! – NTDLS
Essayez ce qui suit à la place:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
votre manque une barre oblique. string [] listOfPipes = System.IO.Directory.GetFiles (@ "\\. \ Pipe \"); – dmex
Vous ... Absolutley ROCK! – NTDLS
J'ai passé toute la nuit à chercher une fonction pour rechercher ou répertorier des tuyaux. C'est exactement ce dont j'avais besoin. Merci!! – swax
Le second tube a été interprété par le présent site Web lorsqu'il est soumis ... Vous avez besoin de deux anti-slash au début. Assurez-vous donc d'utiliser System.IO.Directory.GetFiles (@ "\\. \ Pipe \").
Notez que j'ai vu cet appel de fonction jeter un 'caractères illégaux dans le chemin.' exception quand l'un des tuyaux sur ma machine avait des caractères invalides. PipleList.exe a bien fonctionné, donc cela semble être un bug dans le code .net de MS.
La remarque sur les 'caractères interdits dans le chemin' est un point important, car Il est très fréquent que les programmes ouvrent des noms de tuyaux qui déclenchent cela. Tout programme qui ouvre un tube nommé 'C: \ myLocation \ someFile.x' provoquera cette erreur. – dss539
Dans la console Windows PowerShell, tapez
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
Si votre version du système d'exploitation est supérieure à Windows 7, vous pouvez également taper
get-childitem \\.\pipe\
Vous pouvez envisager d'ouvrir Powershell en tant qu'administrateur – dotNetE
Vous pouvez également utiliser get-childitem \\. \ Pipe \ –
@ChrisGillum J'ai essayé cela, et j'ai reçu une erreur "Impossible de trouver le chemin '\\. \ Pipe \' car il n'existe pas " –
Je suis tombé sur une fonctionnalité dans Chrome qui sera lister tous les canaux nommés ouverts en naviguant vers "file: //.//pipe//"
Puisqu'il me semble que je ne trouve aucune référence à thi s et cela m'a été très utile, j'ai pensé que je pourrais partager.
Pouvez-vous expliquer un peu plus? –
Cela liste mes tuyaux. Incroyable! (notez que cela fonctionnera parce que cela fonctionne comme un répertoire, comme le montre la réponse d'Andrew Shepherd) –
- 1. Comment faire pour obtenir tous les canaux ouverts dans WCF
- 2. WCF sur les canaux nommés
- 3. obtenir tous les formulaires ouverts, C#?
- 4. Obtenir une liste de tous les fichiers dans un répertoire
- 5. Comment obtenir une liste de tous les assemblages actuellement chargés?
- 6. Comment obtenir la liste de tous les utilisateurs dans SharePoint
- 7. Comment obtenir une liste des documents récemment ouverts pour une application?
- 8. obtenir une liste de tous les modèles de rails
- 9. SQL Exécution 2005 Fonction: TCP/IP vs canaux nommés
- 10. Fermeture de tous les fichiers ouverts dans un processus
- 11. Comment faire pour obtenir une liste de tous les processus de fichiers dans WinXP tiennent?
- 12. Comment obtenir une liste des sessions Windows?
- 13. Les services de données ADO.NET peuvent-ils utiliser les canaux nommés comme moyen de transport?
- 14. Liste des proxies ouverts
- 15. Wpf: Liste tous les noms de contrôle dans une application
- 16. Est-il possible de lister les événements nommés dans Windows?
- 17. Dans VB.NET, comment obtenez-vous une liste de tous les utilisateurs de la machine Windows actuelle?
- 18. Utilisation de Java, Comment puis-je obtenir une liste de tous les utilisateurs locaux sur une machine Windows
- 19. Comment obtenir une liste des sockets ouverts sous Linux en utilisant C?
- 20. obtenir une liste de tous les descendants d'un élément dans mootools
- 21. Comment obtenir une liste de tous les fichiers non versionnés de SVN?
- 22. Comment obtenir une liste de tous les utilisateurs avec un groupe d'autorisation spécifique à Django
- 23. Liste de tous les index
- 24. Comment obtenir une liste de tous les caractères imprimables en C#?
- 25. liste de tous les amis
- 26. Comment obtenir la liste de tous les mots clés de recherche dans Lucene?
- 27. Comment obtenir tous les résultats de regex?
- 28. Obtenir la liste de tous les formats de paramètres régionaux dans .net
- 29. Chemins nommés versus TCP pour JDBC-MySQL sous Windows
- 30. Liste de tous les utilisateurs et groupes
Vérifiez quelle version de Process Explorer vous avez avant d'essayer cela. Cela ne fonctionne pas sur la version 15.23, mais fonctionne sur la version 16.02. (N'avez pas essayé d'autres versions) – Carl
Pour éviter d'éventuelles exceptions - comme cela est mentionné dans d'autres réponses - vous pouvez utiliser ma solution qui est plus bas mais qui fonctionne comme un charme même si le nom du pipe nommé contient des caractères invalides fichier. S'il vous plaît voir http://stackoverflow.com/questions/25109491/how-can-i-get-a-list-of-all-open-named-pipes-in-windows-and-avoiding-possible-ex/25126943# 25126943 – user2126375
L'utilisation de 'pipelist.exe' de SysInternals est encore plus simple, mais il s'agit uniquement de la ligne de commande. –