如何在C#中获取已注册COM服务器的路径?

时间:2016-07-22 09:03:54

标签: c# com typelib com-server

有没有一种很好的方法以编程方式获取C#中注册的COM服务器的路径?

我们在C#项目中引用了一个进程外COM服务器(即exe文件);但是我们想要强制我们从特定位置运行COM服务器,所以我们想在启动之前检查已注册的exe文件的路径。除了潜入注册表之外,还有一个很好的方法吗?

1 个答案:

答案 0 :(得分:0)

函数QueryPathOfRegTypeLib就是这样做的。

然而,我确实注意到一个奇怪的怪癖:

如果我首先在每个用户的基础上注册一条路径:

c:\ Path1 \ comserver.exe / regserverperuser

然后在系统级别上从另一个路径注册:

c:\ Path2 \ comserver.exe / regserver

然后QueryPathOfRegTypeLib返回c:\ Path1 \ comserver.exe,但它实际上是加载类型库时启动的c:\ Path2 \ comserver.exe ...