Domanda

Sto facendo un po 'di automazione tramite una combinazione di messaggi di Windows inviando direttamente a HWnds e chiamate a un server COM esposto dall'applicazione automatizzata.

Se c'è più di un'istanza in esecuzione, devo essere in grado di determinare l'ID del processo del server COM, quindi posso colpire la stessa istanza con la chiamata COM come quella che sto inviando messaggi di Windows a.

.

Posso enumerare tutti i server COM di esecuzione con la tabella degli oggetti in esecuzione e recuperare i moniker per tutti loro, ma gli oggetti COM stessi espongono metodi che posso utilizzare per ottenere una maniglia della finestra, ID filettatura, ID di processo o qualsiasi cosadi quel tipo.

C'è un modo per capire, in base a un moniker o all'ogleo oggetto COM di rilegatura del moniker, quale sia l'ID del processo del server Com?

Grazie!

È stato utile?

Soluzione

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.

Altri suggerimenti

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top