为非管理员用户注册DLL(ActiveX)

为非管理员用户注册DLL(ActiveX),dll,activex,windows-installer,registration,non-admin,Dll,Activex,Windows Installer,Registration,Non Admin,我尝试使用MSI为非管理员用户注册dll ActiveX。 要创建注册表设置,我必须在管理模式下注册dll,然后导出相关注册表项,并将所有HKLM重命名为HKCU 当我为非管理员用户安装它时,一切正常。但是,当我对admin user使用相同的设置时,发现TypeLib存在一个问题 当注册在香港大学完成时,应如何更改注册表项以同时适用于管理员和非管理员用户 谢谢你如果你的参赛作品真的在香港中文大学注册,它会起作用的。你正在使用什么MSI安装程序?应该有一种方法指定它应该以用户模式安装 您是让dl

我尝试使用MSI为非管理员用户注册dll ActiveX。 要创建注册表设置,我必须在管理模式下注册dll,然后导出相关注册表项,并将所有HKLM重命名为HKCU

当我为非管理员用户安装它时,一切正常。但是,当我对admin user使用相同的设置时,发现TypeLib存在一个问题

当注册在香港大学完成时,应如何更改注册表项以同时适用于管理员和非管理员用户


谢谢你

如果你的参赛作品真的在香港中文大学注册,它会起作用的。你正在使用什么MSI安装程序?应该有一种方法指定它应该以用户模式安装

您是让dll自行注册还是让msi注册dll?这是最好的做法,让微星这样做,但它更痛苦。如果使用.dll自注册,则需要确保dll在HKEY_当前用户中注册,而不是在HKEY_本地计算机中注册,默认情况下ATL会这样做

如果使用ATL在VS2008中构建,则需要添加: AtlSetPerUserRegistrationtrue; 到您的DllRegisterServer和DllUnregisterServer


不管怎样,这些都是需要寻找的东西。您可以使用Process Monitor并观察Reg命令,以准确查看正在发生的情况;某个地方正在给HKLM写信。

谢谢,我使用了MSI安装,但导入注册表时出现问题。这是否意味着您发现了问题?如果是这样的话,你能把它贴出来作为回答吗?如果没有,如果你能回答我在回答中提出的一些问题,我可能会提供更多的见解。