44 os_time.wYear = WORD(new_time.
year);
45 os_time.wMonth = new_time.
month;
48 os_time.wHour = new_time.
hour;
49 os_time.wMinute = new_time.
minute;
50 os_time.wSecond = new_time.
second;
51 os_time.wMilliseconds = 0;
55 OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES
56 | TOKEN_QUERY, &petoken);
61 LookupPrivilegeValue(NULL, to_unicode_temp(
"SeSystemTimePrivilege"), &our_id);
63 TOKEN_PRIVILEGES privs;
64 privs.PrivilegeCount = 1;
65 privs.Privileges[0].Luid = our_id;
66 privs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
68 AdjustTokenPrivileges(petoken,
false, &privs,
sizeof(TOKEN_PRIVILEGES),
71 SetLocalTime(&os_time);
74 AdjustTokenPrivileges(petoken,
true, &privs,
sizeof(TOKEN_PRIVILEGES),
79 ::PostMessage(HWND_BROADCAST, WM_TIMECHANGE, 0, 0);
85#elif defined(__UNIX__)