我正在升级一个带有 COM 自动化接口的 Delphi 软件项目,以简化一些批处理任务(通过 WSH 脚本)。这本身很容易......但是,该软件的大多数“实际”用户不需要(甚至不知道)这个界面,我想让他们免于注册 COM-Server 或错误消息弹出,当程序无法启动 com 服务器时(目前该软件没有安装程序 - 它只是复制和运行。注册任何东西对用户来说都是一个额外的步骤。它是内部的,所以客户端已经习惯了。 ..)。
这是实际的问题:我能否以编程方式找出运行该软件的当前用户是否有足够的权限来注册 COM 服务器,然后(如果没有)避免尝试创建服务器?我想要一种行为,即当用户没有足够的权限时,自动化服务器不存在(没有错误消息)。
我尝试在周围添加一个try-catch,TAutoObjectFactory.Create(...)
但这并不能防止错误。添加启用服务器的命令行参数也不起作用,因为从脚本创建自动化对象将在没有该参数的情况下启动程序,因此也不会创建服务器。