如何在Windows中获取所有打开的命名管道列表?

时间:2008-11-03 14:04:55

标签: windows winapi pipe

有没有一种简单的方法来测试您的命名管道是否正常工作?我想确保我从我的应用程序发送的数据实际上是发送的。有没有一种快速简便的方法来获取所有命名管道的列表?

8 个答案:

答案 0 :(得分:80)

您可以使用sysinternals中的Process Explorer查看这些内容。使用“查找 - >查找句柄或DLL ...”选项并输入模式“\ Device \ NamedPipe \”。它将显示哪些进程具有哪些管道打开。

答案 1 :(得分:56)

请尝试以下方法:

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

答案 2 :(得分:55)

在Windows Powershell控制台中,键入

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

<小时/> 如果您的操作系统版本大于Windows 7,您也可以键入

get-childitem \\.\pipe\

答案 3 :(得分:41)

使用Sysinternals的pipelist.exe

答案 4 :(得分:16)

C#:

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

答案 5 :(得分:11)

我偶然发现了Chrome中的一项功能,它会通过导航到“file://.//pipe//”列出所有打开的命名管道

由于我似乎无法找到任何参考,这对我非常有帮助,我想我可能会分享。

答案 6 :(得分:7)

第二个管道在提交时由此网站解释...开头需要两个反斜杠。因此,请确保使用System.IO.Directory.GetFiles(@“\\。\ pipe \”)。

请注意,我已经看到此函数调用抛出了“路径中的非法字符”。当我的机器上的一个管道有无效字符时出现异常。 PipleList.exe工作正常,所以它似乎是MS的.net代码中的一个错误。

答案 7 :(得分:1)

CMD提示符下:

>ver

Microsoft Windows [Version 10.0.18362.476]

>dir \\.\pipe\\