Как я могу получить список всех открытых именованных каналов в Windows? - PullRequest
76 голосов
/ 03 ноября 2008

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

Ответы [ 7 ]

80 голосов
/ 03 ноября 2008

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

56 голосов
/ 23 ноября 2010

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

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
55 голосов
/ 22 августа 2012

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

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

<ч /> Если ваша версия ОС больше, чем Windows 7, вы также можете набрать

get-childitem \\.\pipe\
41 голосов
/ 17 сентября 2009

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

16 голосов
/ 18 ноября 2010

C #:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
11 голосов
/ 05 января 2017

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

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

7 голосов
/ 04 января 2011

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

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

...