首页| 论坛| 消息

标题:QSharedMemory设置一个运行的实例
作者:lwei24
日期:2020-09-25 15:55
内容:

各位大佬,请问在项目中,只限制运行一个实例APP,于是,我通过 QSharedMemory去实现了只能运行一个实例的问题。但另一个问题是:如果APP多次运行后,能不能只弹一次提示错误的信息框,如下 代码。各位请问有什么办法实现多次运行APP,只弹一次提示信息的框呢?
QDialog dlg;dlg.show();QSharedMemory appShared("test");if(false == appShared.create(1))){QMessageBox::warning(nullptr, QStringLiteral("warning"), "The app is running.");exit(0);}


#1 [lemonzll 09-25 17:20]
最简单的方法是app启动的时候,去固定的位置读某个文件,如果没有,就创建个,如果有,就去读下文件内容,app关闭的时候把文件删除。这样,第一次启动app的时候,因为没文件,就创建了个,写个0进去,第二个app启动的时候,用qsharedmemory判断已经启动了程序了,再去读下文件,把里面的数字加一,如果数字是1就弹窗,数字不是1就退出了,后面再启动app也这种逻辑,就不可能后面再弹窗了
#2 [zhang2349 09-25 18:25]
按上面罗杰你直接写QSharedMemory里就可以
#3 [mugua001 09-25 20:29]
个人觉得文件不妥,有时程序会异常中止……文件仍健在……下次这个APP就启不来了。
#4 [lemonzll 09-25 23:30]
这不是还有qsharedmemory来判断程序到底起来了没有的,要是qsharedmemory判断可以启动,把那个文件写个0进去
#5 [kenbe 09-28 10:49]
在sharedmemory里,把你运行的次数写进去就可以了。

回复 发表
主题 版块