Question

Je fais une automatisation via une combinaison de message Windows envoyant directement à HWNDS et aux appels à un serveur COM exposé par l'application automatisée.

S'il y a plus d'une instance en cours d'exécution, je dois pouvoir déterminer l'ID de processus du serveur COM afin que je puisse appuyer sur la même instance avec l'appel COM que celui que j'envoie des messages Windows à.

Je peux énumérer tous les serveurs COM d'exécution avec la table d'objets en cours d'exécution et récupérer des monikers pour tous, mais les objets COM desquels s'exposent sans méthodes que je peux utiliser pour obtenir une poignée de fenêtre, ID de thread, ID de processus ou quoi que ce soitde ce genre.

Y a-t-il un moyen de comprendre, sur la base d'un moniker ou de l'objet COM de liaison réel du moniker, quel est l'ID de processus du serveur COM?

merci!

Était-ce utile?

La solution

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.

Autres conseils

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top