它叫什么以及如何实现这种行为?

时间:2017-08-28 17:16:24

标签: c++ wxwidgets desktop-application windows-10-desktop

我正在练习wxwidgets最小样本,我想实现这种行为,我不知道它叫什么。行为是这样的; (使用audacity,因为它也使用wxwidgets)当你使用直接访问打开程序时,它会正常显示,但是如果你再次点击直接访问,它会将你发送到你已经打开的当前实例,如果你有例如,也可以在Windows 10中4台桌面,您在桌面4中打开程序,然后转到桌面1并单击直接访问,它会将您发送到桌面4中运行的程序。

如何在wxwidgets中实现这一点? 比你提前。

1 个答案:

答案 0 :(得分:2)

您正在寻找的内容通常(至少在Windows下)称为“单实例应用程序”,为此,您需要在应用程序的不同实例(即副本)之间使用某种IPC。

一般来说,在启动时,单个实例应用程序会尝试将IPC通道打开到另一个版本的自身,如果成功,则将其自己的命令行参数(如果有)发送到现有实例并退出当前实例。当然,如果失败,应用程序将继续正常运行,假设没有其他实例。

使用wxWidgets,您可以使用wxSingleInstanceChecker class来执行检查,但这通常是不够的,因此您还可以使用wxServerwxClient个对象在实例之间实际传输信息。您可以在手册的IPC overview中阅读有关它们的更多信息。

相关问题