C# 有没有办法查看COM服务器是否已经在运行?

C# 有没有办法查看COM服务器是否已经在运行?,c#,com,C#,Com,我有一个COM服务器运行在自己的.exe中,它提供了一个可选接口。如果用户还没有启动程序,我不想为他们启动。不幸的是,如果我使用以下代码,它会自动启动: Type typ = Type.GetTypeFromProgID(prog_id); server = (IMyServer)Activator.CreateInstance(typ); 我已经在使用Process.getProcessByName查看可执行文件是否正在运行,但在某些情况下,即使检测到进程,也无法建立COM连接。有没有更直接

我有一个COM服务器运行在自己的.exe中,它提供了一个可选接口。如果用户还没有启动程序,我不想为他们启动。不幸的是,如果我使用以下代码,它会自动启动:

Type typ = Type.GetTypeFromProgID(prog_id);
server = (IMyServer)Activator.CreateInstance(typ);

我已经在使用Process.getProcessByName查看可执行文件是否正在运行,但在某些情况下,即使检测到进程,也无法建立COM连接。有没有更直接的方法阻止它启动服务器?

您看过ROT IrunningObject表了吗?CoGetObject也可能工作绑定选项有绑定,但并不总是存在supported@SimonMourier我试图查看ROT,但我的进程没有列出,即使它与另一个进程有实际连接。这可能是32位对64位或UAC/权限问题吗?