windows核心编程:第3章内核对象防止多开
`
windows核心编程:第3章内核对象防止多开
windows内核对象
防止多开
实现的原理:内核对象创建的时候不能重名(GUID)
重名是不允许的。我们利用这一个规则,来防止多开
/*
* 3:内核对象
利用互斥量对象实现
*/
#include <stdio.h>
#include <Windows.h>
int main()
{
//利用GUID生成唯一的锁名,放置内核对象重名
HANDLE h = CreateMutex(NULL, FALSE,
TEXT("{349210d3-ef54-4ec9-8313-9f47435d785d}"));
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
CloseHandle(h);
return 0;
}
printf("单例程序正在运行中...\n");
//为了演示,这里暂停一下cmd输出窗口
system("pause");
CloseHandle(h);
return 0;
}
总结:
1,利用互斥量防止多开
2,这种方法,很容易被破解,只需要修改GUID就能破解