Buenas tardes. Estoy buscando un método para compartir datos de mi aplicación en todo el sistema, para que otras aplicaciones puedan leer esos datos y luego hacer lo que quieran con él (por ejemplo, formatearlo para visualizarlo, usarlo para iniciar sesión, etc.). Los datos deben actualizarse dinámicamente en el método en sí.Sistema de datos compartidos ancho
Primero vino a la mente WMI, pero luego tiene el problema de las aplicaciones deteniéndose mientras lee de WMI. Además, no tengo una idea real de cómo configurar mi propio espacio de nombres o clases si eso es posible en Delphi.
Usar archivos es otra idea, pero podría hacer que el disco sea pesado, y es un método realmente horrible de usar para datos en tiempo real.
Usar un controlador probablemente sea la mejor opción, pero eso es un poco demasiado intrusivo para los usuarios como para mi gusto, y no tengo ni idea de dónde comenzar con él.
WM_COPYDATA sería genial, pero no estoy seguro si eso es lo suficientemente dinámico, y si va a ser pesado en recursos o no.
El uso de TCP/IP sería la mejor opción para la red, pero obviamente es de poca utilidad cuando se ejecuta en un solo sistema sin requisitos de red.
Como puede ver, estoy luchando para descubrir a dónde ir con esto. No quiero entrar en un método solo para descubrir que al final no va a funcionar. Básicamente, algo así como un servicio, o proceso en segundo plano, para registrar datos y luego permitir que otras aplicaciones lean esos datos. Solo estoy seguro de los métodos. Preferiría NO necesitar elevación/UAC para hacer esto, pero si es necesario, me conformaré con eso.
Me estoy ejecutando en Delphi 2010 para este ejercicio.
¿Alguna idea?
¿Podría usar una base de datos quizás? –
Creo que se necesita más aclaración sobre "todo el sistema". ¿Necesita interactuar con otras sesiones (los usuarios iniciaron sesión en el mismo sistema a través de "cambiar de usuario", escritorio remoto, Citrix, etc.), o simplemente el inicio de sesión actual? O subsistemas de VM? No creo que WM_CopyData funcione a través de tales límites, por lo que debe aclarar el alcance. –
Hola Chris. No necesito interactuar o transmitir a otras sesiones o máquinas virtuales de ninguna manera. Está en sesiones transmitiendo lo que estoy viendo. –