MFC ?
在 InitInstance() 使用类似下下面的代码,这个例子是只运行一个程序
HANDLE hMutex=CreateMutex(NULL,FALSE,_T("CSTS"));
if(hMutex==NULL || GetLastError() == ERROR_ALREADY_EXISTS)
{
CloseHandle(hMutex);
AfxMessageBox(_T("已经有一个程序在运行,您不能同时运行两个及以上本程序! "),MB_ICONINFORMATION);
ExitProcess(0);
}
给你提供一个思路,在程序运行时向系统注册表里写入一个键值,设置其值为1,退出时将该键值改写为0,当再次运行程序时先查找该键值,如果其值为1,表示程序正在运行,用对话框提示程序已经运行,调用exit(0)即可。