2016-07-22 80 views
0

有沒有一種很好的方式來編程獲取C#中註冊的COM服務器的路徑?如何獲取C#中註冊的COM服務器的路徑?

我們有一個我們在C#項目中引用的進程外COM服務器(即一個exe文件)但是我們希望強制執行從特定位置運行COM服務器,因此我們希望在啓動它之前檢查註冊的exe文件的路徑。除了進入註冊表之外,還有一個好辦法可以做到這一點嗎?

+2

註冊表使用情況實際上已記錄在案,例如LocalServer32密鑰:https:/ /msdn.microsoft.com/en-us/library/windows/desktop/ms683844.aspx –

+0

不,沒有好方法。當服務器本身可以輕易地告訴你時,不要依賴oracle。 –

回答

0

功能QueryPathOfRegTypeLib就是這樣做的。

但是,我也注意到一個奇怪的怪癖:

如果我第一次從一個路徑登記在每個用戶的基礎上:

C:\路徑1 \ comserver.exe/regserverperuser

和然後從另一個路徑註冊在系統級上基礎:

C:\路徑2 \ comserver.exe/REGSERVER

然後QueryPathOfRegTypeLib返回C:\ Path1 \ comserver.exe,但它實際上是在加載類型庫時啓動的c:\ Path2 \ comserver.exe ...