运行一个软件, 如何让其知道软件本身是开机后第一次运行呢?
解决思路:
软件运行前检查这个标记文件是否存在, 存在的话就认为开机后已经启动过该软件, 不存在则创建标记文件
将文件设置为开机删除
于是每次重启系统都会删除标记文件, 从而运行软件是标记文件就会不存在, 从而完成检查目的.
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
int main()
{
//检测文件是否存在
if (0 == _taccess(_T("Reboot.txt"), 0))
{
printf("不是开机后第一次启动\n");
}
else
{
printf("是开机后第一次启动\n");
FILE* fp = NULL;
errno_t error = _tfopen_s(&fp, _T("Reboot.txt"), _T("w+, ccs=UNICODE"));
if (NULL != fp)
{
fclose(fp);
}
}
//设置文件设置为重启后删除
if (!::MoveFileEx(_T("Reboot.txt"), NULL, MOVEFILE_DELAY_UNTIL_REBOOT))
{
printf("删除失败, error:%d\n", GetLastError());
}
return 0;
}
通过检查Reboot.txt文件的存在来判断软件是否是开机后第一次启动。若文件存在则认为非首次,否则创建文件并设置为开机后删除。使用MoveFileEx函数延迟到重启时删除标记文件,确保每次启动时文件都会消失,从而实现检查目的。
2119

被折叠的 条评论
为什么被折叠?



