如何讓電腦右下角的時間自動更新?? |
答題得分者是:chris_shieh
|
depblue
一般會員 發表:38 回覆:29 積分:13 註冊:2004-12-27 發送簡訊給我 |
|
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
利用Dos command: Time
uses ..ShellAPI; procedure SetCurrentTime(sTime:String); begin ShellExecute(Self.Handle, nil, 'cmd.exe', PChar('/C time ' sTime), nil, SW_HIDE); end; 用法: procedure TForm1.Button1Click(Sender: TObject); var sTime:String; begin sTime:='11:02:00'; SetCurrentTime(sTime); end;@瞭解越多.懂得越少@ |
depblue
一般會員 發表:38 回覆:29 積分:13 註冊:2004-12-27 發送簡訊給我 |
引言: 利用Dos command: Time我照著上面的方法處理 不過,電腦右下角的時間顯示還是沒有更新 而且,我想問一下 cmd.exe是指什麼檔案 PChar('/C time ' sTime)這個代表什麼意思?? 謝謝!!uses ..ShellAPI; procedure SetCurrentTime(sTime:String); begin ShellExecute(Self.Handle, nil, 'cmd.exe', PChar('/C time ' sTime), nil, SW_HIDE); end; 用法: procedure TForm1.Button1Click(Sender: TObject); var sTime:String; begin sTime:='11:02:00'; SetCurrentTime(sTime); end;@瞭解越多.懂得越少@ |
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
cmd.exe是開啟DOS命令提示字元的執行檔
(以前的版本是Command.com) ShellExecute的參數說明
PChar('cmd.exe') : 執行開啟DOS視窗
PChar('/C time ' + sTime) : 這是 cmd.exe 的參數 這兩行合起來代表執行 cmd.exe /C time "11:02:00"
你可以試試看直接在 「開始」-> 「執行」鍵入 cmd.exe /C time "11:02:00"
右下角時間應該會變更 程式碼稍有一些筆誤
修改如下
我執行過可以更改
uses ShellAPI; procedure SetCurrentTime(sTime:String); begin ShellExecute(0, nil, 'cmd.exe', PChar('/C time ' sTime), nil, SW_HIDE); end; procedure TForm1.Button1Click(Sender: TObject); var sTime:String; begin sTime:='17:30:00'; SetCurrentTime(sTime); end;@瞭解越多.懂得越少@ |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 我現在使用兩台電腦,因為兩台電腦的系統時間可能會不一樣, 所以每當我執行B電腦的一隻程式時,會自動抓A電腦的系統時間 當成B電腦的系統時間 現在問題是: A電腦時間是抓到了,而且B電腦的系統時間也跟A電腦一樣了 可是B電腦右下角的時間顯示卻是沒更新之前的舊時間 請問要如何讓B電腦右下角的時間能即時更新??提供另一種用法, 不透過 dos command 的方法, 直接以win32 API來處理會更直接 procedure TForm_DateRejust.btn_DateSetClick(Sender: TObject); var newDay: TSystemTime; mYear, mMonth, mDay: word; mHour, mMinute, mSecond, mMSecond: word; begin DecodeDate(Date, mYear, mMonth, mDay); DecodeTime(Time, mHour, mMinute, mSecond, mMSecond); newDay.wYear := mYear; newDay.wMonth:= mMonth; newDay.wDay := mDay; newDay.wDayOfWeek:=0; // sun 為第一天的開始 newDay.wHour:= mHour; newDay.wMinute:= mMinute; newDay.wSecond:= mSeccond; newDay.wMilliseconds:=0; // 微秒可以不要設定 SetLocalTime(newDay); SendMessage(HWND_TOPMOST, WM_TIMECHANGE, 0, 0); end; |
depblue
一般會員 發表:38 回覆:29 積分:13 註冊:2004-12-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |