Pregunta

Estoy haciendo algo de automatización a través de una combinación de mensaje de Windows que envía directamente a HWNDS y llamadas a un servidor COM expuesto por la aplicación automatizada.

Si se está ejecutando más de una instancia, necesito poder determinar el ID de proceso del servidor COM, por lo que puedo presionar la misma instancia con la llamada COM, ya que está enviando mensajes de Windows a.

Puedo enumerar todos los servidores COM de ejecución con la tabla de objetos en ejecución y recuperar a los Monikers para todos ellos, pero los objetos COM exponen no los métodos que no pueda usar para obtener una manija de ventana, ID de rosca, ID de proceso o cualquier cosade ese tipo.

¿Hay alguna forma de averiguar, según un moniker o en el objeto COM de unión real del Moniker, ¿cuál es el ID de proceso del servidor COM?

¡Gracias!

¿Fue útil?

Solución

If you control (write code for) both the server and the client you can add a method to your COM interface that would return the process / thread ID or anything of this nature (e.g. server hostname if it is remote) on the server end. I second @Hans - unless you have access to the server implementation you may be out of luck by design.

Otros consejos

I believe the kimgr CoGetServerPID function will give you the process-id of your COM server.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top