• 关于如何实现程序一天只启动一次的想法(C++实现)


      

    问题描述: 我们在程序开发当中,经常会遇到某些子程序需要实现一天只启动一次的功能,该功能实现的方法有很多种,其原理都是通过记录标记为来实现的。本次要分享的也是利用程序标记为来实现的,而且只需要使用一个标记为:上次启动时间,并将这个标记为保存在注册表中!

    实现原理:  1. 子程序第一次启动的时候,在注册表中创建一个新的键值,并且保存当前系统时间;  (此部分代码省略)

           2. 通过定时器去监测是否启动子程序,并对当前时间当天的最后时间(23:59:59)进行比较;如果当前时间小于当天最后时间,不执行;如果大于,执行子程序,并且将当前时间更新到注册表中;

           3. 时间比较是通过转换成long类型来实现的,因为将时间保存到注册表中是DWORD类型。

    示例代码:

      

    BOOL HasShowToday(UINT dueDays = 0)
    {
        BOOL bRt = FALSE;
        time_t lastTime = (time_t)GetTimeFromReg();
        struct tm* pTm = localtime(&lastTime); // time_t -> tm
        pTm->tm_mday += dueDays;
        pTm->tm_hour = 23;
        pTm->tm_min = 59;
        pTm->tm_sec = 59;
    
        time_t dueTime = mktime(pTm); // tm -> time_t
    DWORD dwCurTime
    = GetCurTime(); if ( (DWORD)dueTime < dwCurTime ) { bRt = TRUE; SetTimeToReg(GetCurTime()); } return bRt; }
  • 相关阅读:
    e667. 在给定图像中创建缓冲图像
    e661. 确定图像中是否有透明像素
    e673. Getting Amount of Free Accelerated Image Memory
    e663. 在gif图像中获取透明和色彩的数量
    e662. 取的图像的色彩模型
    e675. 翻转缓冲图像
    e665. 在图像中过滤三元色
    e679. 浮雕化图像
    e669. 绘制缓冲图像
    e664. 在图像中获取子图像
  • 原文地址:https://www.cnblogs.com/nchxmoon/p/3196407.html
Copyright © 2020-2023  润新知