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); //这里向系统增加的原子的功能一样