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