Skip to content

希望再次打开程序时直接显示主窗口,而不是提示已打开 #220

Description

@Pizazz-stack

目前程序已经做了单实例限制,再次双击 exe 会弹出“多开限制”之类的提示。

希望改成常见软件的行为:
检测到已经有实例在运行时,直接显示主窗口(如果最小化到托盘就还原),不用弹提示,也不用启动第2个应用程序

这样直接从桌面或者任务栏启动用的会舒服,也符合主流软件

技术上可以考虑:

  • 第一个实例启动时创建互斥体(Mutex)或监听本地端口
  • 第二个实例检测到已存在后,通过 Windows API(FindWindow / ShowWindow / SetForegroundWindow)找到主窗口并激活
  • 或者用 Socket / 命名管道给第一个实例发消息,让它自己 show + toFront
  • 如果窗口在托盘,直接触发托盘的“显示主界面”逻辑

项目已经有托盘和 JNA,改动应该不会太大。

谢谢

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions