Qt实现应用单实例运行(1)-使用共享内存
来源:互联网 发布:淘宝买家怎么刷信誉 编辑:程序博客网 时间:2024/06/08 03:12
在工程的main函数中添加以下代码(在QApplicationapp(argc, argv);和创建主窗口语句之间添加即可):
// 确保只运行一次
QSystemSemaphore sema("JAMKey",1,QSystemSemaphore::Open);
sema.acquire();// 在临界区操作共享内存 SharedMemory
QSharedMemory mem("SystemObject");// 全局对象名
if (!mem.create(1))// 如果全局对象以存在则退出
{
QMessageBox::information(0, MESSAGEBOXTXT,"Aninstance has already been running.");
sema.release();// 如果是 Unix 系统,会自动释放。
return 0;
}
sema.release();// 临界区
备注:以上内容引自(经过了简单的修改):http://blog.csdn.net/tingsking18/article/details/5610123
本方法最为简单,可以实现应用的单实例运行,但无法自动激活窗口。
1 0
- Qt实现应用单实例运行(1)-使用共享内存
- Qt实现应用单实例运行(3)-使用QTSingleApplication
- Qt实现应用单实例运行(2)-使用自定义类
- Qt应用的单实例运行
- 利用共享数据段实现限制EXE单实例运行
- QT共享内存使用
- QT应用程序单实例运行
- QT应用程序单实例运行
- QT应用程序单实例运行
- QT应用程序单实例运行
- QT: 如何实现程序的单实例运行检测?
- Qt实现应用程序单实例运行--LocalServer方式
- Qt实现应用程序单实例运行-LocalServer方式
- 实现单实例运行
- 使用Mutex实现会话状态下单实例运行和系统范围内单实例运行
- 使用Mutex实现会话状态下单实例运行和系统范围内单实例运行
- Qt共享内存的使用
- 使用Mutex实现程序单实例运行(c#)
- 二维码的生成和扫描
- Leetcode:Climbing Stairs
- [Python]第六讲:tuple
- oc的字典转模型
- 淘宝技术架构变迁
- Qt实现应用单实例运行(1)-使用共享内存
- 基于Hubot打造自己的聊天机器人服务(一)
- 线程和进程的区别和联系
- uniq b
- Orcl服务
- js模块化历程
- Android游戏笔记(五)之图形变换
- JS处理Table跨行
- 动画篇(三)——总结·android动画七问七答