在第一个程序启动时注册COM对象

时间:2011-02-24 08:02:18

标签: delphi com

我有一个带有自动化对象的Delphi应用程序。 在程序开始时,我想在注册表中自动注册COM对象(而不是使用/ regserver开关)。

该程序的旧版本是用Delphi 7编写的,我想我记得这个版本在程序启动后注册了。但是现在它是用D2009编译的,现在它没有注册。也许有人对此有所了解?

非常感谢!

2 个答案:

答案 0 :(得分:7)

这可能会失败,因为您在使用UAC的计算机上运行,​​并且您无权写入HKLM。您不会使用/regserver开关找到满意的解决方案,因为它总是会尝试在那里写。

您可以切换到无注册表的COM,尽管在安装过程中进行注册可能更好。那时你应该这样做,因为当你知道你将拥有足够的权利时。

答案 1 :(得分:4)

您可以使用ComServer.UpdateRegistry(True);注册您的com对象,并使用ComServer.UpdateRegistry(False);取消注册。

在ComServ.pas中找到

ComServer

http://docwiki.embarcadero.com/VCL/en/ComServ.TComServer.UpdateRegistry