【发布时间】:2009-04-28 09:07:23
【问题描述】:
我需要使我的应用程序一次只能运行一个实例。此外,当它使用命令行参数启动时(例如注册以打开某些文件类型时),它应该将参数传递给现有实例并立即退出而不显示图形界面。大家应该都知道我的意思了。使用的框架是 Qt 4,看起来它必须有一些设施。有什么想法吗?
【问题讨论】:
标签: qt qt4 operating-system desktop
我需要使我的应用程序一次只能运行一个实例。此外,当它使用命令行参数启动时(例如注册以打开某些文件类型时),它应该将参数传递给现有实例并立即退出而不显示图形界面。大家应该都知道我的意思了。使用的框架是 Qt 4,看起来它必须有一些设施。有什么想法吗?
【问题讨论】:
标签: qt qt4 operating-system desktop
有一个 Qt Solutions 项目这样做:
【讨论】:
有几种方法可以进行进程间通信。示例可以在 Qt 的examples section 中找到。
【讨论】:
也可以使用 QSharedMemory 自己实现此类 (参见 QSharedMemory::attach() )。它既可以用于确定其他实例是否已经在运行,也可以用于通信/发送消息。除了一些指针魔术和内存复制之外,它非常简单。
【讨论】: