如何在Windows中获取所有打开的命名管道列表?
题
有没有一种简单的方法来测试您的命名管道是否正常工作?我想确保我从我的应用程序发送的数据实际上是发送的。有没有一种快速简便的方法来获取所有命名管道的列表?
解决方案
您可以使用sysinternals中的 Process Explorer 查看这些内容。使用“查找 - >查找句柄或DLL ...“选项并输入模式“\ Device \ NamedPipe \”。它将显示哪些进程具有哪些管道打开。
其他提示
请尝试以下方法:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
在Windows Powershell控制台中,键入
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
如果您的操作系统版本大于Windows 7,您也可以键入
get-childitem \\.\pipe\
使用来自Sysinternals的 pipelist.exe 。
C#:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
我偶然发现了Chrome中的一项功能,该功能会通过导航到“file://.//pipe//"
来列出所有打开的命名管道由于我似乎无法找到任何参考,这对我非常有帮助,我想我可能会分享。
第二个管道在提交时由此网站解释...开头需要两个反斜杠。因此,请确保使用System.IO.Directory.GetFiles(@“\\。\ pipe \”)。
请注意,我已经看到此函数调用抛出了“路径中的非法字符”。当我的机器上的一个管道有无效字符时出现异常。 PipleList.exe工作正常,所以它似乎是MS的.net代码中的一个错误。
不隶属于 StackOverflow