基于visual c++之windows核心编程代码分析(27)保持程序单实例运行
大家看见没有,迅雷只能启动一个,这个在代码中间是如何实现的呢,我们来亲自在代码中实践一下。
#include<windows.h> #include<stdio.h> int main(int argc,char *argv[]) { HANDLE hMutex; DWORD dwErr; hMutex=CreateMutex(NULL,//无安全描述 FALSE,//没有所有者 "HACK");//对象名 if(hMutex==NULL)//hMutex为NULL标示创建失败 { MessageBox(NULL,"CreateMutex error!",NULL,MB_OK); } else { dwErr=GetLastError(); if(dwErr==ERROR_ALREADY_EXISTS)//互斥对象已经存在 { MessageBox(NULL,"Application has already running",NULL,MB_OK); ExitProcess(0); } } getchar(); return 0; }