利用QSharedMemory 保证单个程序运行

有的时候我们需要保证用户只能运行一个实例进程,那下面就介绍一下利用Qsharememory来完成这操作!

QShareMemory

示例如下
QLogin::QLogin(QWidget *parent /*= 0*/)
	: QDialog(parent)
{
	m_sharedMen = new QSharedMemory("SWARTZ 1.0");
	...
}

bool QLogin::IsRunning()
{
	volatile int i = 2;
	while (i--)
	{
		if (m_sharedMen->attach(QSharedMemory::ReadOnly))
		{
			m_sharedMen->detach();
		}
	}
	if (!m_sharedMen->create(1))
	{
		return true;
	}
	return false;
}

QLogin::~QLogin()
{
	delete(m_sharedMen);
}

只需要在主函数里面加一个判断即可!

QLogin login;
if (login.IsRunning())
{
	QMessageBox::about(NULL, QObject::tr("warning"), QObject::tr("App has been started"));
	return 0;
}



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值