查找具有进程ID或MainWindowHandle的多个实例的COM对象(Corel.Application)

查找具有进程ID或MainWindowHandle的多个实例的COM对象(Corel.Application),com,pid,comobject,Com,Pid,Comobject,我有一个客户机-服务器应用程序执行下一步: 服务器启动并侦听特定端口。 许多corelDraw sessions手动或编程启动。每个corel会话(客户端)连接到发送当前进程ID的服务器。服务器将所有连接保留在listView中,并且基于每个连接端点可以更改(发送和接收)消息。 现在我想使用特定进程ID的COM对象。 我试过: 有没有办法获得corel COM对象,让我有机会像那样使用corel.Application对象 MessageBox.Show(corApp.Documents.Cou

我有一个客户机-服务器应用程序执行下一步:
服务器启动并侦听特定端口。 许多corelDraw sessions手动或编程启动。每个corel会话(客户端)连接到发送当前进程ID的服务器。服务器将所有连接保留在listView中,并且基于每个连接端点可以更改(发送和接收)消息。 现在我想使用特定进程ID的COM对象。 我试过:

有没有办法获得corel COM对象,让我有机会像那样使用corel.Application对象

MessageBox.Show(corApp.Documents.Count.ToString());

提前谢谢

没有从PID获取对象的通用机制,但是根据OLE服务器的实现,您可以使用。有关针对PowerPoint的类似示例,请参见

您还可以查看应用程序是否在运行对象表中注册。例如,VisualStudio使用
的名字注册!VisualStudio.DTE.14.0:21604
其中14.0是版本,21604是流程id


Thnks!我已经尝试了您的第一个建议,但是它对于您知道指南的Microsoft COM对象非常有效:IID_IDispatch As String=“{00020400-0000-0000-C000-0000000000 46}”。我找不到确定corel应用程序的方法。对于第二个建议,我找不到RotView。。。也许它能帮我找到导游。。。
MessageBox.Show(corApp.Documents.Count.ToString());