void CIiiDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == 1)
{
SYSTEMTIME st;
GetLocalTime(&st);
//st.wYear = 2008;
//SetLocalTime(&st);
CString str;
str.Format("%u-%u-%u %u:%u:%u",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
CEdit *edt=(CEdit*)GetDlgItem(IDC_EDIT);
edt->SetWindowText(str);
}
CDialog::OnTimer(nIDEvent);
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == 1)
{
SYSTEMTIME st;
GetLocalTime(&st);
//st.wYear = 2008;
//SetLocalTime(&st);
CString str;
str.Format("%u-%u-%u %u:%u:%u",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
CEdit *edt=(CEdit*)GetDlgItem(IDC_EDIT);
edt->SetWindowText(str);
}
CDialog::OnTimer(nIDEvent);
BOOL SetSysTime()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp; // Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE ); // Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SYSTEMTIME_NAME, //注意,改的就是它
&tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0); if (GetLastError() != ERROR_SUCCESS)
return FALSE; //取得必要权限后,设置系统时间
SYSTEMTIME systm;
::GetLocalTime(&systm); //得到当前的本地时间
systm.wMonth += 1; //月份和小时数加1
systm.wHour += 1; if(0 != ::SetLocalTime(&systm))
{
return TRUE;
}
else
{
return FALSE;
}
应该是2007呀,为什么会这样?