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

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

Ответ 1

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

Ответ 2

Попробуйте вместо этого:

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

Ответ 3

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

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


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

Ответ 4

Используйте pipelist.exe из Sysinternals.

Ответ 5

С#:

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

Ответ 6

Вторая труба была интерпретирована этим веб-сайтом, когда была представлена ​​... Вам нужно две обратные косые черты в начале. Поэтому обязательно используйте System.IO.Directory.GetFiles(@ "\\.\Pipe \" ).

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

Ответ 7

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

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