名前付きパイプが正しく機能しているかどうかをテストする簡単な方法はありますか?アプリから送信しているデータが実際に送信されていることを確認したいと思います。名前付きパイプすべてのリストを取得するための迅速で簡単な方法はありますか?
回答:
あなたがこれらを表示することができますプロセスエクスプローラのSysinternalsから。[検索]-> [ハンドルまたはDLLの検索...]オプションを使用して、パターン「\ Device \ NamedPipe \」を入力します。どのプロセスでどのパイプが開いているかが表示されます。
pipelist.exe
SysInternalsからの使用はさらに簡単ですが、コマンドラインのみです。
Windows Powershellコンソールで、次のように入力します
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
get-childitem \\.\pipe\
これにより、オブジェクトのリストが返されます。名前のみが必要な場合:
(get-childitem \\.\pipe\).FullName
(2番目の例\\.\pipe\
はPowershell 7では機能しませんが、最初の例は機能します)
代わりに次を試してください。
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
pipe
どこから来たのですか?
Sysinternalsのpipelist.exeを使用します。
「file://.// pipe //」に移動して、開いている名前付きパイプをすべて一覧表示するChromeの機能を見つけました。
私はこれへの言及を見つけることができないようで、それは私にとって非常に役に立ちましたので、私は共有するかもしれないと思いました。
C#:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
でCMD
プロンプト:
>ver
Microsoft Windows [Version 10.0.18362.476]
>dir \\.\pipe\\
2番目のパイプは、送信時にこのWebサイトによって解釈されました...最初に2つの円記号が必要です。したがって、必ずSystem.IO.Directory.GetFiles(@ "\\。\ pipe \")を使用してください。
この関数呼び出しが「パスに不正な文字」をスローするのを見たことがあることに注意してください。マシンのパイプの1つに無効な文字が含まれている場合の例外。PipleList.exeは問題なく動作したので、MSの.netコードのバグのようです。
C:\myLocation\someFile.x
は、このエラーを引き起こします。