Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要使我的应用程序一次只能运行一个实例。此外,当它使用命令行参数启动时(例如注册打开某些文件类型时),它应该将参数传递给现有实例并立即退出而不显示图形界面。大家应该都知道我的意思了。使用的框架是 Qt 4,看起来它必须有一些设施。有任何想法吗?
有一个 Qt Solutions 项目这样做:
Qt 单一应用程序
有几种方法可以进行进程间通信。示例可以在 Qt 的示例部分中找到。
也可以使用 QSharedMemory 自己实现这种类(参见 QSharedMemory::attach() )。它既可以用于确定其他实例是否已经在运行,也可以用于通信/发送消息。除了一些指针魔术和内存复制之外,它非常简单。