Pertanyaan Bagaimana saya bisa mendapatkan daftar semua pipa bernama terbuka di Windows?


Apakah ada cara mudah untuk menguji apakah pipa yang Anda tandai berfungsi dengan benar? Saya ingin memastikan bahwa data yang saya kirim dari aplikasi saya benar-benar dikirim. Apakah ada cara cepat dan mudah untuk mendapatkan daftar semua pipa bernama?


75
2017-11-03 14:04


asal


Jawaban:


Anda dapat melihatnya dengan Process Explorer dari sysinternals. Gunakan opsi "Cari -> Cari Tangani atau DLL ..." dan masukkan pola "\ Device \ NamedPipe \". Ini akan menunjukkan kepada Anda proses mana yang memiliki pipa mana yang terbuka.


79
2017-11-03 14:39



Coba yang berikut ini sebagai gantinya:

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

55
2017-11-23 02:13



Di konsol Windows Powershell, ketik

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


Jika versi OS Anda lebih besar dari Windows 7, Anda juga bisa mengetik

get-childitem \\.\pipe\

47
2017-08-22 04:44



Menggunakan pipelist.exe dari Sysinternals.


39
2017-09-16 22:19



C #:

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

16
2017-11-17 22:31



Pipa kedua ditafsirkan oleh situs web ini ketika dikirim ... Anda perlu dua backslashes di awal. Jadi pastikan untuk menggunakan System.IO.Directory.GetFiles (@ "\\. \ Pipe \").

Perhatikan bahwa saya telah melihat fungsi ini memanggil membuang 'karakter ilegal di jalan.' pengecualian ketika salah satu pipa di mesin saya memiliki karakter yang tidak valid. PipleList.exe berfungsi dengan baik, jadi sepertinya ada bug di MS .net code.


7
2018-01-03 22:30



Saya menemukan fitur di Chrome yang akan mencantumkan semua pipa bernama terbuka dengan menavigasi ke "file: //.//pipe//"

Karena saya tidak dapat menemukan referensi untuk ini dan itu sangat membantu saya, saya pikir saya mungkin akan berbagi.


7
2018-01-05 14:44