我有一个带有自动化对象的Delphi应用程序。 在程序开始时,我想在注册表中自动注册COM对象(而不是使用/ regserver开关)。
该程序的旧版本是用Delphi 7编写的,我想我记得这个版本在程序启动后注册了。但是现在它是用D2009编译的,现在它没有注册。也许有人对此有所了解?
非常感谢!
答案 0 :(得分:7)
这可能会失败,因为您在使用UAC的计算机上运行,并且您无权写入HKLM
。您不会使用/regserver
开关找到满意的解决方案,因为它总是会尝试在那里写。
您可以切换到无注册表的COM,尽管在安装过程中进行注册可能更好。那时你应该这样做,因为当你知道你将拥有足够的权利时。
答案 1 :(得分:4)
您可以使用ComServer.UpdateRegistry(True);
注册您的com对象,并使用ComServer.UpdateRegistry(False);
取消注册。
ComServer
http://docwiki.embarcadero.com/VCL/en/ComServ.TComServer.UpdateRegistry