c++ - Qt 中的单实例应用程序

标签 c++ qt

<分区>

我想将 .exe 文件(更具体地说是控制台应用程序)集中到一个运行正常的程序上,该程序在第一次启动时可以运行,但在第二次执行时(当第一个程序存在时)它可能会将焦点转移到第一个启动的程序上。这在 Qt 中有可能吗?

最佳答案

对于单个实例,阅读 Run only one instance of a Qt application

忽略可移植性,如果您在 Windows 上运行,另一种常见的方法是创建一个 named pipe (或 named mutex )当应用程序启动时,并在退出前销毁它。如果命名管道已经存在,则另一个实例已经在运行。您甚至可以写入命名管道,要求另一个实例将其窗口置于最前面,尽管控制台应用程序可能不会特别从中受益。

另一种聚焦现有实例的方法是找到已经运行的实例的窗口,然后调用 SetFocus 在其 HWND 上,或您平台上的相应函数。

关于c++ - Qt 中的单实例应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18502772/

相关文章:

c++ - 如何在 C++ Builder 4.0 中创建 BPL 文件?

c++ - 带标题的QFrame

c++ - 将 QGraphicsScene 子类与 ui 一起使用?

qt - 在 QGraphicsView 上绘制小部件(例如按钮)

c++ - 在 QT Creator 中封装 UI 还是传递指向 UI 的指针更好?

C++,表达式不能是函数

无法识别 C++ 标准库头

c++ - 如何通过 OSX 在 Matlab 中更改 C++ 编译器

c++ - Qt程序部署

c++ - 我可以知道变量是否改变了它的值而不用在函数调用 C 中将它与以前的值进行比较吗?