c++ Builder中如何让程序只运行一个实例

c++ Builder中如何让程序只运行一个实例

//包含此文件确保值创建一个实例
HANDLE __stdcall CrnGetValidMutex() {
	HANDLE hMutex1 = ::CreateMutex(NULL, TRUE, TEXT("DataDigWuxuping"));

	if (::GetLastError() == ERROR_ALREADY_EXISTS) {
		if (hMutex1)
			::CloseHandle(hMutex1);
		return NULL;
	}
	else
		return hMutex1;
}
 //使用方法

 ---------------------------------------------------------------------------
//WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int) {
//	HANDLE hMutex = NULL;
//	try {
//		hMutex = CrnGetValidMutex();
//		if (!hMutex) {
//			// ::MessageBox(NULL, TEXT("已经有1个实例运行了!"),
//			// TEXT("提醒"), MB_OK | MB_ICONWARNING);
//
//			return -1;
//		}
//
//		Application->Initialize();
//		Application->MainFormOnTaskBar = true;
//		Application->CreateForm(__classid(TForm1), &Form1);
//		Application->Run();
//	}
//	catch (Exception &exception) {
//		Application->ShowException(&exception);
//	}
//	catch (...) {
//		try {
//			throw Exception("");
//		}
//		catch (Exception &exception) {
//			Application->ShowException(&exception);
//		}
//	}
//	::ReleaseMutex(hMutex);
//	::CloseHandle(hMutex);
//	return 0;
//}
 ---------------------------------------------------------------------------

上面的比较简单,其它的方式都是浮云!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值