关于如何实现程序一天只启动一次的想法(C++实现)
生活随笔
收集整理的這篇文章主要介紹了
关于如何实现程序一天只启动一次的想法(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 -> tmpTm->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; }
?
轉載于:https://www.cnblogs.com/nchxmoon/p/3196407.html
總結
以上是生活随笔為你收集整理的关于如何实现程序一天只启动一次的想法(C++实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中out的用法
- 下一篇: iptables复习记忆