0

我正在开发一个 Delphi 应用程序,它可以直接启动,作为桌面应用程序,通过运行应用程序(例如,通过单击资源管理器中的可执行文件)或 - 间接地,作为进程外服务器,通过创建任何在应用程序中实现(并由其注册)的 COM 对象

有没有办法检测我的应用程序是作为进程外 COM 服务器还是作为桌面应用程序启动的?

4

1 回答 1

0

注册 COM 对象时,您可以为其包含命令行参数,例如/automation,然后在进程启动时查找这些参数。

但是,由于这是一个进程外服务器,因此存在一个无法解决的问题。假设服务器首先作为应用程序运行,然后在应用程序仍在运行时创建 COM 对象。COM 对象将简单地来自现有进程,该进程不是作为 COM 进程启动的,因此不会出现 COM 命令行参数。根据流程启动类型,这可能会或可能不会影响您要执行的操作。

于 2014-07-18T20:25:51.320 回答