c++检查程序是否运行,防止同一程序运行2个的方法

方法一:创建互斥量方式,判断程序是否正在运行
Application->Initialize();
Application->Title = “XXX系统”;

【全新正版】C语言从入门到精通c语言程序设计c++电脑编程入门零基础自学轻松学计算机c语言入门软件程序员开发教程教材书籍
全新版【赠:电子书实战案例+VC6.0安装包】 | 月销量2079件
优惠价28.8元
原价¥98

淘口令:

¥TKv4XPcK4xd¥
 

//检测程序是否已经运行,并给出提示。
CreateMutex( NULL, False, Application->Title.c_str() );
if ( GetLastError() == ERROR_ALREADY_EXISTS )
{
MessageBox( NULL, “XXX系统已经在运行!”, Application->Title.c_str(), MB_ICONERROR );
Application->Terminate();
return 0;
}

方法二:遍历系统存在的进程,查找制定进程是否存在
vector<String> JCName;
AnsiString ExeFile;
PROCESSENTRY32 processinfo;
processinfo.dwSize = sizeof(processinfo);
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(snapshot != NULL )
{
bool flag = Process32First(snapshot,&processinfo);
while (flag)
{
ExeFile = AnsiString(processinfo.szExeFile);
JCName.push_back(ExeFile);
flag = Process32Next(snapshot,&processinfo);
}
int k=0;
for(unsigned int i=0;i<JCName.size();i++)
{
if(JCName[i]==ExtractFileName(Application->ExeName)||JCName[i]==Application->ExeName)
{
k++;
if(k>1)
{
String tx=”【”+Application->ExeName+”】程序已运行!”;
String cp=”XXX系统”;
Application->MessageBox(tx.c_str(),cp.c_str(),32+16);
Application->Terminate();
}
}
}
}

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0
分享
评论 抢沙发