互斥运行程序

1
采用Mutex互斥体
HANDLE Handle;
Handle = CreateMutex(NULL,FALSE,_T("MakeSheet3.0"));
//这里创建的Mutex是整个系统都可见的,所以无论你拷贝多少都不行的.

2
采用原子
#define  AtomName  "MyProgramNameAtom" //这个字串可以自己取,尽量取得特殊些
ATOM Atom;
// 程序一开始,判断原子是否存在
if (GlobalFindAtom(AtomName))
        return 1; 
// 程序已经运行,这里找到了上面定义的原子,说明已经被其他的程序使用了,这儿直接退出
Atom = GlobalAddAtom(AtomName);        //这里向系统增加的原子的功能一样

原文地址:https://www.cnblogs.com/hyamw/p/319776.html