您的位置:首页 > 理论基础 > 计算机网络

让程序只启动一个实例(from: http://topic.csdn.net/t/20010427/08/106676.html)

2008-07-16 16:09 651 查看
下面的两种方法都是可以的

HANDLE hMap=CreateFileMapping((HANDLE)0xffffffff,NULL,PAGE_READWRITE,0,128,
"MutexRuning");
if(hMap==NULL)
{
AfxMessageBox("创建内存映射文件失败",MB_OK|MB_ICONSTOP);
return FALSE;
}
else if(GetLasError()==ERROR_ALREADY_EXISTS)
{
LPVOID lpMem=MapViewOfFile(hMap,FILE_MAP_WRITE,0,0,0);
CString str=(char *)lpMem;
UnmapViewOfile(lpMem);
CloseHandle(hMap);

AfxMessageBox(str,MB_OK|MB_ICONSTOP);
return FALSE;
}
else
{
//是第一次运行
LPVOID lpMem=MapViewOfFile(hMap,FILE_MAP_WRITE,0,0,0);
//程序运行描述信息
strcpy((char *) lpMem,"xxxx正在运行!");
UnmapViewOfFile(lpMem);
}

// HWND hOldInstance;
// if ((hOldInstance =::FindWindow(NULL, _T("LANMonitorClient"))) != NULL)
// {
// ShowWindow(hOldInstance,SW_RESTORE|SW_SHOWNORMAL);
// SetForegroundWindow(hOldInstance);
// return FALSE;
// }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐