Come posso ottenere un elenco di tutte le pipe denominate aperte in Windows?
Domanda
Esiste un modo semplice per verificare se la pipa denominata funziona correttamente? Voglio assicurarmi che i dati che invio dalla mia app vengano effettivamente inviati. C'è un modo semplice e veloce per ottenere un elenco di tutte le pipe nominate?
Soluzione
Puoi visualizzarli con Process Explorer da sysinternals. Utilizza " Trova - > Trova handle o DLL ... " opzione e inserisci il modello " \ Device \ NamedPipe \ " ;. Ti mostrerà quali processi hanno quali pipe si aprono.
Altri suggerimenti
Prova invece quanto segue:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
Nella console di Windows Powershell, digitare
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
Se la versione del tuo sistema operativo è superiore a Windows 7, puoi anche digitare
get-childitem \\.\pipe\
Utilizza pipelist.exe da Sysinternals.
C #:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
Mi sono imbattuto in una funzione di Chrome che elencherà tutte le pipe con nome aperto passando a " file: //.//pipe//"
Dato che non riesco a trovare alcun riferimento a questo ed è stato molto utile per me, ho pensato di condividere.
La seconda pipe è stata interpretata da questo sito quando è stata inviata ... All'inizio sono necessarie due barre rovesciate. Quindi assicurati di utilizzare System.IO.Directory.GetFiles (@ " \\. \ Pipe \ ").
Nota che ho visto questa funzione chiamare un "personaggio illegale nel percorso". eccezione quando uno dei tubi sulla mia macchina aveva caratteri non validi. PipleList.exe ha funzionato bene, quindi sembra un bug nel codice .net di MS.