為何程式都沒有按照我寫的時間更改windows的時間(有範例) |
尚未結案
|
lanfanra
一般會員 發表:48 回覆:51 積分:19 註冊:2003-08-06 發送簡訊給我 |
為何下列程式我執行起來都跑2004/1/7/下午5:16 啊??是否能請各位大大
幫我試試,或告訴小弟有哪寫錯了啊
HANDLE hToken; /* process token */ TOKEN_PRIVILEGES tp; /* token provileges */ TOKEN_PRIVILEGES oldtp; /* old token privileges */ DWORD dwSize = sizeof (TOKEN_PRIVILEGES); LUID luid; /* now, set the SE_SYSTEMTIME_NAME privilege to our current * process, so we can call SetSystemTime() */ if (!OpenProcessToken (GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken)) ShowMessage("OpenProcessToken failed"); if (!LookupPrivilegeValue (NULL, SE_SYSTEMTIME_NAME, &luid)) CloseHandle (hToken); ZeroMemory (&tp, sizeof (tp)); tp.PrivilegeCount = 1; tp.Privileges[0].Luid = luid; tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; /* Adjust Token privileges */ if (!AdjustTokenPrivileges (hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES),&oldtp, &dwSize)) CloseHandle (hToken); /* Set time */ SYSTEMTIME stCurrentTime; stCurrentTime.wYear = 2005; stCurrentTime.wMonth=1; stCurrentTime.wDay=5; stCurrentTime.wHour=23; stCurrentTime.wMinute=45; stCurrentTime.wSecond=5; SetLocalTime(&stCurrentTime); /* disable SE_SYSTEMTIME_NAME again */ AdjustTokenPrivileges (hToken, FALSE, &oldtp, dwSize, NULL, NULL); if (GetLastError() != ERROR_SUCCESS) CloseHandle (hToken); CloseHandle (hToken); |
CuteBabyBoy
初階會員 發表:18 回覆:97 積分:48 註冊:2003-07-11 發送簡訊給我 |
|
lanfanra
一般會員 發表:48 回覆:51 積分:19 註冊:2003-08-06 發送簡訊給我 |
|
CuteBabyBoy
初階會員 發表:18 回覆:97 積分:48 註冊:2003-07-11 發送簡訊給我 |
To : lanfanra 如果您只是為了要設定時間
要不要參考看看我的做法
這是我從程式中截取出來的一段
您可以參考看看 那您的做法,我試了幾次都沒問題
您要不要把您的經驗告訴我們
例如做那些步驟會有不正常的狀況
這樣我覺得會比較快解決 希望大家能一起討論來解決問題..謝謝...^^
#includeBaby |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |