我如何获得Windows中所有打开的命名pipe道的列表?
有没有简单的方法来testing你的命名pipe道是否正常工作? 我想确保从我的应用程序发送的数据实际上正在发送。 有没有一种快速简便的方法来获取所有命名pipe道的列表?
您可以使用sysinternals的Process Explorer查看这些信息。 使用“查找 – >查找句柄或DLL …”选项并input模式“\ Device \ NamedPipe \”。 它会告诉你哪些进程有哪些pipe道打开。
尝试以下方法:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
从Sysinternals使用pipelist.exe 。
在Windows Powershell控制台中,键入
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
如果您正在运行PowerShell版本3或更高版本(不是Windows 7的默认版本),您也可以键入
get-childitem \\.\pipe\
C#:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
第二条pipe道在提交时由本网站解释…开始时需要两个反斜杠。 所以一定要使用System.IO.Directory.GetFiles(@“\\。\ pipe \”)。
请注意,我已经看到这个函数调用抛出一个“path中的非法字符”。 当我的机器上的其中一个pipe道有无效字符时例外。 虽然PipleList.exe工作正常,所以它看起来像MS的.NET代码中的错误。
我偶然发现了Chrome中的一个function,通过导航到“file://.pipe//”列出所有打开的命名pipe道。
由于我似乎无法find任何这方面的参考资料,对我很有帮助,所以我想我可以分享。