在当前用户注册表中注册OCX

时间:2012-03-27 05:37:39

标签: vb6 registry activex

是否可以在VB 6.0中以编程方式在当前用户注册表中注册OCX或dll?我搜索了很多,但找不到任何解决方案。我在本地机器级别找到了注册代码,但在当前用户级别找不到任何帮助,以下是包含在本地机器上注册dll的代码的链接。

http://www.trixar.com/~makai/regx.htm

请给我一些指示,以便我只能为当前用户注册我的控件。

2 个答案:

答案 0 :(得分:4)

VB6编译器根据COM自注册标准发出自注册代码,这意味着每个机器级注册。

这是一个打包和部署问题,而不是编程问题。

正如Windows Installer的文档所示,自注册被视为后备机制。大多数情况下,您的安装过程应该注册这样的库本身而不是调用self-reg入口点。这提供了几个好处,包括在每个用户安装期间进行每用户注册的可能性。

但从Windows XP开始,可以使用新选项。您可以将应用程序安装为独立而无需组件注册,这种技术也称为“免注册COM”。这允许安装应用程序而无需在任何级别注册组件,并允许不同的应用程序使用他们自己需要的大多数非系统组件库的私有副本。例外的是进程外服务器,它总是需要按机器注册。

所以寻找一种专门用于协助无reg包装的工具。有一些供VB6开发人员使用的开源产品,一些更通用的商业工具,以及一些需要更多手动配置但应该对此有用的Microsoft清单工具。

答案 1 :(得分:1)

DLL注册本身的地方是DLL和它的作者,调用应用程序无法直接控制它。

如果它适用于单个特定DLL,您可以尝试自己创建注册表项,但您需要确切地知道需要注册哪些对象,接口和类型库以及它们的详细信息。 (这不是我自己做的事情,除了我写的最简单的DLL)