Comunicación entre procesos en windows
Pregunta
Tengo un script TCL ejecutándose en Windows. Necesito comunicarme a una vieja aplicación vc ++ 6 que se ejecuta en un proceso diferente. Necesito tener comunicación de 2 vías. En Linux usaría dbus, pero ¿qué estrategia de IPC debería usar para Windows?
Solución
Tcl en Windows tiene soporte dde incorporado (ver documentos para el comando dde) que podría ayudar si la otra aplicación lo admite. Otra opción es la extensión TWAPI (Tcl Windows API), que tiene facilidades para enviar entradas de teclado y mouse a otra aplicación, consulte http://twapi.magicsplat.com/input.html .
Otros consejos
Boost.interprocess tiene varias formas tales como memoria compartida y paso de mensajes para C ++. Siempre puede comenzar allí y ver qué es compatible con su script.
¿Qué tal tuberías con nombre?
Los sockets antiguos simples funcionan muy bien en TCL en Windows (y Linux, y en todas partes se implementa TCP / IP :)
Una lista de opciones de MSDN: http: / /msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx
Si desea algo más 'enterprisy', también hay Cola de mensajes de Windows .
Desde la perspectiva de Tcl, la forma más simple, si su aplicación VC6 lo permite, sería obtener TCL para iniciar la aplicación VC y luego usar stdin y stdout para comunicarse. Si eso no es posible, el comando de socket Tcl le permite establecer una conexión de socket TCP con otro proceso.
Vea aquí para obtener detalles de la primera y < a href = "http://www.tcl.tk/man/tcl8.4/TclCmd/socket.htm" rel = "nofollow noreferrer"> aquí para obtener información sobre los sockets.