重新激活托盘中运行的应用的最佳方法是什么?

ros*_*mcm 1 delphi mutex trayicon minimize invocation

我有一个delphi应用程序,最小化运行托盘图标.双击托盘图标时,应用程序将打开一个非模态用户界面表单.

我已经为应用添加了逻辑,以检测它是否已经在运行.如果它没有运行,它会启动并将自身减少到托盘.

如果它已经在运行,我希望它将控制权传递给它自己的第一个实例并打开非模态表单,然后退出(第二个实例).最好的方法是什么?

TIA R

Jhe*_*ico 5

检测给定应用程序的另一个实例的推荐方法是该应用程序创建一个命名的互斥锁或锁定一个众所周知的位置的文件,以便当您尝试创建相同的互斥锁或锁定时,第二个实例将触发错误同一个文件.一旦您知道另一个实例正在运行,您就可以找到该实例的进程句柄,并在最小化时向其发送消息以进行恢复.