利用互斥对象在重复建立时会发生错误返回的特性,可以实现一个程序只运行一个实例.此方法相对查找窗口标题来比较要简单得多.如下:
将以下代码放入App::InitInstance()中:
HANDLE hMutex;
hMutex=CreateMutex(NULL,TRUE,"Sniffer");
if(hMutex){
if(ERROR_ALREADY_EXISTS==GetLastError()){
AfxMessageBox("An instance is runing!");
return FALSE;
}
}