它叫什么以及如何实现这种行为?
What is it called and how to implement this behavior?
我正在练习 wxwidgets 最小示例,我想实现这个行为,我不知道它叫什么。行为是这样的; (使用 audacity,因为它也使用 wxwidgets)当您使用直接访问打开程序时,它通常会启动,但如果您再次单击直接访问,它会将您发送到您已经打开的当前实例,也在 windows 10 if例如,您有 4 个桌面,您在桌面 4 中打开程序,然后转到桌面 1 并单击直接访问,它会将您转到桌面 4 中的程序 运行。
如何在 wxwidgets 中实现它?
比你提前。
您要查找的内容通常(至少在 Windows 下)称为 "single instance applications" 并且要实现此目的,您需要在您的不同实例(即副本)之间具有某种 IPC申请。
一般来说,在启动时,单个实例应用程序会尝试打开一个 IPC 通道到它自己的另一个版本,如果成功,将它自己的命令行参数(如果有的话)发送到现有实例并退出当前实例一。当然,如果它失败了,假设没有其他实例,应用程序将继续 运行 正常。
使用wxWidgets,可以使用手册中的wxSingleInstanceChecker class to just perform the check, but this is usually not enough, so you would also use wxServer and wxClient objects to actually transmit information between instances. You can read more about them in the IPC overview。
我正在练习 wxwidgets 最小示例,我想实现这个行为,我不知道它叫什么。行为是这样的; (使用 audacity,因为它也使用 wxwidgets)当您使用直接访问打开程序时,它通常会启动,但如果您再次单击直接访问,它会将您发送到您已经打开的当前实例,也在 windows 10 if例如,您有 4 个桌面,您在桌面 4 中打开程序,然后转到桌面 1 并单击直接访问,它会将您转到桌面 4 中的程序 运行。
如何在 wxwidgets 中实现它? 比你提前。
您要查找的内容通常(至少在 Windows 下)称为 "single instance applications" 并且要实现此目的,您需要在您的不同实例(即副本)之间具有某种 IPC申请。
一般来说,在启动时,单个实例应用程序会尝试打开一个 IPC 通道到它自己的另一个版本,如果成功,将它自己的命令行参数(如果有的话)发送到现有实例并退出当前实例一。当然,如果它失败了,假设没有其他实例,应用程序将继续 运行 正常。
使用wxWidgets,可以使用手册中的wxSingleInstanceChecker class to just perform the check, but this is usually not enough, so you would also use wxServer and wxClient objects to actually transmit information between instances. You can read more about them in the IPC overview。