全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1050
推到 Plurk!
推到 Facebook!

為何程式都沒有按照我寫的時間更改windows的時間(有範例)

尚未結案
lanfanra
一般會員


發表:48
回覆:51
積分:19
註冊:2003-08-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-08 09:12:31 IP:61.66.xxx.xxx 未訂閱
為何下列程式我執行起來都跑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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-08 09:43:09 IP:218.167.xxx.xxx 未訂閱
我試過了....沒問題... Baby
lanfanra
一般會員


發表:48
回覆:51
積分:19
註冊:2003-08-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-08 11:44:51 IP:61.66.xxx.xxx 未訂閱
我剛開始也沒問題,但在更改另一個時間後就一直跑之前所設定之時間了,請 您再多試幾次...煩勞了.
CuteBabyBoy
初階會員


發表:18
回覆:97
積分:48
註冊:2003-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-09 09:51:23 IP:218.167.xxx.xxx 未訂閱
To : lanfanra    如果您只是為了要設定時間 要不要參考看看我的做法 這是我從程式中截取出來的一段 您可以參考看看    那您的做法,我試了幾次都沒問題 您要不要把您的經驗告訴我們 例如做那些步驟會有不正常的狀況 這樣我覺得會比較快解決    希望大家能一起討論來解決問題..謝謝...^^  
#include    void __fastcall TSetTimeClass::Set_System_Time(void)
{
   struct  date Set_Date;
   struct  time t;       Set_Date.da_year     = Edit5->Text.ToInt() ;
   Set_Date.da_mon      = Edit6->Text.ToInt() ;
   Set_Date.da_day      = Edit7->Text.ToInt() ;       if(Edit4->Text == "AM")
     {
        if(Edit3->Text.ToInt()==12)
                t.ti_hour            = 0 ;
        else
                t.ti_hour            = Edit3->Text.ToInt() ;
     }
   else
     {
        if(Edit3->Text.ToInt()==12)
                t.ti_hour            = 12 ;
        else
                t.ti_hour            = Edit3->Text.ToInt()   12 ;
     }       t.ti_min             = Edit2->Text.ToInt() ;
   t.ti_sec             = Edit1->Text.ToInt() ;
   t.ti_hund            = 0 ;       setdate(&Set_Date) ;
   settime(&t) ;    }
//---------------------------------------------------------------------------     
Baby
系統時間:2024-03-29 6:39:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!