2010-02-12 91 views
0

我嘗試使用MSI爲非管理員用戶註冊dll(ActiveX)。 要創建註冊表設置,我已經以管理員模式註冊dll,然後導出相關注冊表項並將所有HKLM重命名爲HKCU。爲非管理員用戶註冊DLL(ActiveX)

當我爲非管理員用戶安裝它時,一切正常。但是,當我使用與admin用戶相同的設置時,發現TypeLib存在問題。

當在HKCU下完成註冊時,註冊表項中應該更改哪些內容以適用於管理員和非管理員用戶?

謝謝

回答

0

如果你的項HKCU下真正註冊,它會工作。您使用的是MSI安裝程序?應該有一種方法來指定它應該以用戶模式安裝。

你讓dll自注冊還是讓msi註冊dll?讓MSI去做它是最好的做法,但它更加痛苦。如果你有.dll自注冊,你需要確保dll註冊在HKEY_CURRENT_USER中,而不是HKEY_LOCAL_MACHINE,默認情況下是ATL。

如果你建立了它在VS2008與ATL,你將要添加: AtlSetPerUserRegistration(true); 您的DllRegisterServer和DllUnregisterServer。

無論如何,這些都是需要尋找的東西。您可以使用Process Monitor並觀察Reg命令以查看到底發生了什麼;有些地方正在寫信給HKLM。

+0

謝謝, 我使用MSI安裝,但導入註冊表時出現問題。 – Zaky 2010-03-14 13:27:24

+0

這是否意味着你發現了這個問題?如果是這樣,你可以發佈它作爲答案嗎?如果沒有,如果你能回答我在答案中提出的一些問題,我可能會提供更多的見解。 – taxilian 2010-03-18 16:48:25