Как я могу получить список всех открытых именованных каналов в Windows?


есть ли простой способ проверить, правильно ли работает ваш именованный канал? Я хочу убедиться, что данные, которые я отправляю из моего приложения, действительно отправляются. Есть ли быстрый и простой способ получить список всех именованных каналов?

7 75

7 ответов:

вы можете просмотреть их с Process Explorer от sysinternals. Используйте " найти -> найти дескриптор или DLL..."опция и введите шаблон" \Device\NamedPipe\". Он покажет вам, какие процессы имеют какие трубы открыты.

попробуйте следующее:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\.\pipe\");

в консоли Windows Powershell введите

[System.IO.Directory]::GetFiles("\.\pipe\")


Если ваша версия ОС больше, чем Windows 7, вы также можете ввести
get-childitem \.\pipe\

использовать pipelist.exe от Sysinternals.

C#:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\.\pipe\");

я наткнулся на функцию в Chrome, которая будет перечислять все открытые именованные каналы, перейдя к "файл://.// труба//"

поскольку я не могу найти никаких ссылок на это, и это было очень полезно для меня, я подумал, что могу поделиться.

второй канал был интерпретирован этим веб-сайтом при отправке... Вам нужно две обратные косые черты в начале. Так что удостоверьтесь, чтобы использовать систему.ИО.Каталог.Заражен(@"\\.\трубы\").

обратите внимание, что я видел этот вызов функции бросить " незаконные символы в пути.- исключение, когда на одной из трубок моей машины были недопустимые символы. Пиплелист.ехе работал хорошо, хотя, так кажется, что ошибка в MS это .net код.