当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在Windows中获取所有打开的命名管道列表?》经验,为你挑选了7个好方法。

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



1> Rob Walker..:

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


为了避免可能的异常 - 正如在其他答案中提到的那样 - 你可以使用我的解决方案,这个解决方案更低级别但是就像魅力一样工作,即使命名管道名称包含文件名的无效字符.请参阅http://stackoverflow.com/questions/25109491/how-can-i-get-a-list-of-all-open-named-pipes-in-windows-and-avoiding-possible-ex/25126943# 25126943

2> Andrew Sheph..:

在Windows Powershell控制台中,键入

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


如果您的操作系统版本大于Windows 7,您也可以输入

get-childitem \\.\pipe\


您可能要考虑以管理员身份打开Powershell

3> 小智..:

请尝试以下方法:

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


你错过了一个斜线.string [] listOfPipes = System.IO.Directory.GetFiles(@"\\.\ pipe \");
我们在Windows 10上遇到了这个方法的问题 - 得到错误"第二个路径片段不能是驱动器或UNC名称.参数名称:path2"
@Kevin"\\.\"表示"这台机器",按照https://msdn.microsoft.com/en-US/en-en/library/windows/desktop/aa365783(v=vs.85).aspx

4> 小智..:

使用Sysinternals中的pipelist.exe.



5> 小智..:

C#:

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



6> 小智..:

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

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



7> 小智..:

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

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

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有