因为是最简单的。
所以,这个程序用创建一个额外的文件来判断程序是否多开。
那么,就是在程序里面,先尝试打开一个.temp
文件。
若打不开,则创建创建这个文件。
若能够打开,则判断已经有一个程序在运行中,就exit()。
那么,简单的代码来了:
#include
#include
int main()
{
FILE * fp;
fp=fopen(".temp","r");
if(fp==NULL)
fp=fopen(".temp","w");
else
{
puts("Program is running.");
exit(1);
}
while(getchar()=='1')
;
fclose(fp);
remove(".temp");
return 0;
}
对了,千万记住,这个文件在程序结束的时候要删除掉,不然就再也开不起来了。
还有就是,创建的临时文件最好有一个固定的路径,不要像我一样创建在当前路径。不然换个目录运行就能多开了。
开始脑洞吧!还有什么其他的方法能够防止多开呢?
1.绑定端口?(可能误判
2.检测进程名字
3.内存检测判断?(不一定可行
4.桌面截图判断?(丧心病狂
5.重要文件独享
6….
使用。正想破头脑。