正如Pavel Minaev在某个答案的评论中提到的那样,WinRT(用于Metro应用程序,对于桌面应用程序,管道与Windows 7中的管道相同)中没有命名管道: 例如,没有命名管道,也没有内存映射文件。有套接字(包括服务器套接字),但是当连接到localhost时,只能连接到同一应用程序。 您可能会对WinRT API感兴趣,其中包括套接字。
谈论WinRT - 你真的不能创建命名管道。谈论在AppContainer完整性级别下运行的Windows 8桌面应用程序 - 你可以通过常规的WinAPI函数创建命名管道。问题是默认情况下只有具有相同AppContainer ID的应用程序才能访问它(换句话说 - 只有你自己的应用程序的实例)。但实际上,如果您拥有高或中完整性级别的进程 - 您可以从该进程创建管道并降低其完整性级别,以便AppContainer中的应用程序可以使用它。在这里查看示例:http://msdn.microsoft.com/en-us/library/windows/desktop/hh448493(v=vs.85).aspx 甚至更多 - 从具有高完整性级别的桌面应用程序中,您可以使用dll注入将dll注入到WinRT应用程序中,并再次使用WinAPI创建管道。因此,管道在WinRT中被拒绝不是由于操作系统设计,而仅仅是由于WinRT中缺乏接口。