2011-10-09 9 views

Respuesta

4

Como Pavel Minaev menciona en uno de los comentarios a some answer, no hay canalizaciones con nombre en WinRT (para aplicaciones Metro, para aplicaciones de escritorio tuberías son los mismos que en Windows 7):

Las canalizaciones con nombre aren' t allí, por ejemplo, ni son archivos mapeados en la memoria. Hay sockets (incluidos los sockets de servidor), pero cuando se conecta a localhost, solo puede conectarse a la misma aplicación.

Puede que le interese the WinRT API, que incluye sockets.

+1

Si los sockets se ajustan a sus necesidades, es necesario agregar la capacidad "Internet (Cliente y Servidor)" en el archivo Package.appxmanifest. Haga doble clic en él y vaya a la pestaña Declaraciones. –

+0

Eso realmente no es una respuesta, porque la pregunta era sobre "Windows 8 con AppContainer" y la respuesta es sobre "WinRT". Es posible tener aplicaciones de escritorio en el nivel de integridad de AppContainer, y las tuberías con nombre están disponibles para aplicaciones de escritorio en Win8. Lamentablemente, no sé cómo crear un conducto, disponible tanto para la aplicación de alta integridad como para la aplicación "AppContainer". Obtuve "acceso denegado", por lo que la pregunta sigue abierta. – Ezh

+1

@Ezh gracias por un downvote válido y argumentado. Proporcione su propia respuesta si encuentra más información al respecto. –

2

Hablando de WinRT: realmente no se puede crear una tubería con nombre.

Hablando de la aplicación de escritorio Windows 8 que se ejecuta bajo el nivel de integridad de AppContainer: puede crear un conducto con nombre mediante funciones regulares de WinAPI. El problema es que, por defecto, solo las aplicaciones con el mismo ID de AppContainer pueden acceder a él (en otras palabras, solo instancias de su propia aplicación). Pero, de hecho, si tiene un proceso bajo nivel de integridad Alto o Medio, a partir de este proceso puede crear un conducto y disminuir su nivel de integridad, para que las aplicaciones de AppContainer puedan usarlo.

Tome un vistazo a la muestra aquí: http://msdn.microsoft.com/en-us/library/windows/desktop/hh448493(v=vs.85).aspx

Incluso más - de aplicación de escritorio con alto nivel de integridad se puede utilizar la inyección para inyectar DLL DLL de la aplicación que WinRT y otra vez - utiliza API de Windows para crear tuberías. Por lo tanto, las tuberías son denegadas en WinRT no por el diseño del sistema operativo, sino solo por la falta de interfaces en WinRT.

Cuestiones relacionadas