zoukankan      html  css  js  c++  java
  • SetLocalTime设置本地时间

    /*****************************************************************
    函数名:EnableSetTimePriviledge
    功  能:开放设置时间权限
    返回值:布尔类型,权限开放成功返回TRUE,否则返回FALSE
    *****************************************************************/
    BOOL EnableSetTimePriviledge()
    {
        HANDLE           m_hToken;
        TOKEN_PRIVILEGES m_TokenPriv;
        BOOL             m_bTakenPriviledge;
    
        BOOL bOpenToken = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | 
            TOKEN_QUERY, &m_hToken);
    
        m_bTakenPriviledge = FALSE;
        if (!bOpenToken) 
        {
            if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) 
            {
                //Must be running on 95 or 98 not NT. In that case just ignore the error
                SetLastError(ERROR_SUCCESS);
                if(!m_hToken)
                    CloseHandle(m_hToken);
                return TRUE;
            }
            TRACE(_T("Failed to get Adjust privilege token
    "));
            if(!m_hToken)
                CloseHandle(m_hToken);
            return FALSE;
        }
        ZeroMemory(&m_TokenPriv, sizeof(TOKEN_PRIVILEGES));
        if (!LookupPrivilegeValue(NULL, SE_SYSTEMTIME_NAME, &m_TokenPriv.Privileges[0].Luid))
        {
            TRACE(_T("Failed in callup to lookup privilege
    "));
            if(!m_hToken)
                CloseHandle(m_hToken);
            return FALSE;
        }
        m_TokenPriv.PrivilegeCount = 1;
        m_TokenPriv.Privileges[0].Attributes |= SE_PRIVILEGE_ENABLED;
        m_bTakenPriviledge = TRUE;
    
        BOOL bSuccess = AdjustTokenPrivileges(m_hToken, FALSE, &m_TokenPriv, 0, NULL, 0);
        if (!bSuccess)
            TRACE(_T("Failed to adjust SetTime privilege
    "));
    
        if(!m_hToken)
            CloseHandle(m_hToken);
    
        return bSuccess;
    }

    启用进程访问令牌权限,再进行设置。

    SYSTEMTIME sysTime;
        GetLocalTime(&sysTime);
        if(SetLocalTime(&sysTime))
        {
            //设置成功
        }
  • 相关阅读:
    nodeJS入门01-http模块
    nodeJS入门-Buffer对象
    php与MySQL(php内置mysql函数)
    php与MySQL(基本操作)
    log4net
    js验证小数类型(浮点数)和整数类型
    牛腩学ASP.NET CORE做博客视频
    opencv再学习之路(八)---设定感兴趣区域(RIO)
    opencv再学习之路(四)---色彩分割得到二值图像
    opencv再学习之路(三)---形态学操作
  • 原文地址:https://www.cnblogs.com/wuyuan2011woaini/p/5340299.html
Copyright © 2011-2022 走看看