Pergunta

Estou fazendo alguma automação através de uma combinação de mensagem do Windows enviando diretamente para HWNDS e chamadas para um servidor COM exposto pelo aplicativo automatizado.

Se houver mais de uma instância em execução, eu preciso determinar o ID do processo do servidor COM para que eu possa acertar a mesma instância com a chamada COM como um que estou enviando mensagens do Windows para.

.

Eu posso enumerar todos os servidores COM RUNNING com a tabela de objetos em execução e recuperar os monikers para todos eles, mas os próprios com objetos exporem nenhum método que eu possa usar para obter um identificador de janela, ID do processo, ou qualquer coisadesse tipo.

Existe alguma maneira de descobrir, com base em um moniker ou no objeto COM Ligação real do Moniker, qual é o ID do processo do servidor COM?

Obrigado!

Foi útil?

Solução

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.

Outras dicas

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top