读取上一次关机时间遇到一点问题

wowo05 2012-12-27 11:16:14
想通过读取注册表,来获取上一次关机时间,发现遇到二进制就不会写了
HKEY hKey;
DWORD KeyType = REG_BINARY;
DWORD DataSize;
LPCTSTR data_Set="SYSTEM\\CurrentControlSet\\Control\\Windows";
long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKey));
if(ret0==ERROR_SUCCESS)
{
BYTE *pbuf = new BYTE[200];
long ret1= RegQueryValueEx(hKey,"ShutdownTime",NULL,&KeyType,(LPBYTE)pbuf,&DataSize);
if(ret1 == ERROR_SUCCESS)
{
//怎么对pbuf 变成2012年X月X日 X小时X分钟
}
}


RegCloseKey(hKey);
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wowo05 2012-12-27
  • 打赏
  • 举报
回复
谢谢邓总
邓学彬 2012-12-27
  • 打赏
  • 举报
回复
FILETIME* ft=(FILETIME*)pbuf;
CTime time(*ft);
AfxMessageBox(time.Format("%Y-%m-%d %H:%M:%S"));
邓学彬 2012-12-27
  • 打赏
  • 举报
回复
HKEY hKey;
DWORD KeyType = REG_BINARY;
DWORD DataSize;
LPCTSTR data_Set="SYSTEM\\CurrentControlSet\\Control\\Windows";
long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKey));
if(ret0==ERROR_SUCCESS)
{		
    BYTE  *pbuf = new BYTE[200];
    long ret1= RegQueryValueEx(hKey,"ShutdownTime",NULL,&KeyType,(LPBYTE)pbuf,&DataSize);
    if(ret1 == ERROR_SUCCESS)
    {
        //怎么对pbuf 变成2012年X月X日 X小时X分钟
        FILETIME ft;//新加
        ft=(FILETIME*)pbuf;//新加
        CTime time(*ft);//新加
        AfxMessageBox(time.Format("%Y-%m-%d?%H:%M:%S"));//新加
    }
}	
RegCloseKey(hKey);

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧