Определить процесс, лежащий в основе RCW - PullRequest
0 голосов
/ 15 марта 2019

Есть компонент COM, с которым я разговариваю.Он открывается с помощью .exe, а не .dll.

Я ссылался на него, и он отлично работает:

ISomeComApp app = new SomeComApp(); // no problem

Однако может быть несколько экземпляров SomeComApp.То, что я получаю при обновлении SomeComApp, является чьим-либо предположением, т. Е. Когда запущено несколько экземпляров SomeComApp, у меня нет возможности узнать, какой экземпляр я получу.Это дизайн SomeComApp, это не моя идея.

Всякий раз, когда я создаю ссылку, создается Runtime Callable Wrapper (RCW) (верно?).

Iхочу захватить SomeComApp в Process, чтобы я мог прослушать событие Exited.Я понял, что работает, когда SomeComApp запускает один экземпляр.Мне даже удалось идентифицировать это, когда> 1 работал, итерируя по MainWindowTitle.

Это кажется очень неуклюжим.Мой вопрос: есть ли способ получить базовый процесс от RCW?

...