|
|
1
1
|
|
|
2
5
实现这一点的最佳方法实际上是在exe的启动代码中。换句话说,让资源管理器启动exe的第二个副本,然后继续检测它是否已经在运行,并让它向正在运行的实例发送消息。 就我个人而言,我几乎没有使用Delphi的经验,但是我在.NET应用程序中这样做的方式是使用互斥和进程间通信通道。 一般的想法是应用程序的第一个实例将启动,并开始在IPC通道上侦听。它还将创建一个命名的进程间互斥体。当第二个实例启动时,它将无法创建同名的互斥体,这意味着前一个实例正在运行并在IPC通道上侦听调用。然后,第二个实例通过IPC将命令行参数发送给第一个实例,第一个实例对它们执行了操作。然后,第二个实例退出而不显示任何UI。 我已经上传了这个组件的代码(c),链接如下。我不相信它有任何外部依赖性,我也不知道Delphi中等效的通信机制是什么——但希望这能给你一些想法。 |
|
|
3
2
|