【问题标题】:What is it called and how to implement this behavior?它叫什么以及如何实现这种行为?
【发布时间】:2017-08-28 17:16:24
【问题描述】:

我正在练习 wxwidgets 最小样本,我想实现这种行为,我不知道它叫什么。行为是这样的; (使用大胆,因为它也使用 wxwidgets)当您使用直接访问打开程序时,它通常会加注星标,但是如果您再次单击直接访问,它会将您发送到您已经打开的当前实例,如果您有例如,在 Windows 10 中也是如此4个桌面,你在桌面4打开程序,然后你去桌面1点击直接访问,它会把你带到桌面4运行的程序。

如何在 wxwidgets 中实现它? 比你提前。

【问题讨论】:

  • @DavidWilson,虽然对我的回答的评论通常是正确的,但我将官方文档的链接发布到 wxWidgets 在线手册。当然,这应该被标记为“LMGTFY”,但我没有打扰,因为 OP 说他正在学习图书馆。请撤消删除。
  • @MartijnPieters,请见上文。

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


【解决方案1】:

您正在寻找的通常(至少在 Windows 下)称为“单实例应用程序”,为了实现这一点,您需要在应用程序的不同实例(即副本)之间拥有某种 IPC。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多