網路授時服務,同步本機時間,主要**:
#include "stdafx.h"
#include
#include
#include
#include "resource.h"
#include "maindlg.h"
#define hightime 21968699 // 21968708 // jan 1, 1900 filetime.hightime
#define lowtime 4259332096 // 1604626432 // jan 1, 1900 filetime.lowtime
bool winapi main_proc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)
return false;
}bool main_oninitdialog(hwnd hwnd, hwnd hwndfocus, lparam lparam)
void main_oncommand(hwnd hwnd, int id, hwnd hwndctl, uint codenotify)
break;
default:
break;}}
void sockettest()
unsigned long ultime=0;
//接收時間伺服器返回的訊息
recv(sock,(char *)&ultime,sizeof(unsigned long),0);
ultime = ntohl(ultime);
//messagebox(null,buff,text("返回訊息"),mb_ok);
systemtime st;
uint64 uicurtime, uibasetime, uiresult;
uibasetime = ((uint64) hightime << 32) + lowtime;
uicurtime = (uint64)ultime * (uint64)10000000;
uiresult = uibasetime + uicurtime;
filetimetosystemtime((lpfiletime)&uiresult, &st);
tchar buff[256];
zeromemory(buff,sizeof(buff)/sizeof(tchar));
wsprintf(buff,text("%i年%i月%i日 %i:%i:%i"),st.wyear,st.wmonth,st.wday,st.whour+8,st.wminute,st.wsecond);
messagebox(null,buff,text(""),mb_ok);
setsystemtime(&st);
//做事情。把大象放冰箱總共分幾步
closesocket(sock);
wsacleanup();
}void showerror()
void main_onclose(hwnd hwnd)
{enddialog(hwnd, 0);
注意:要改變本機時間必須以管理員身份執行程式。
總結:
Windows程式設計之時間
查msdn可以看到,windows中的時間分為以下幾類 format type description system systemtime year,month,day,hour,second,and millisecond,taken from the internal hardware cloc...
Windows 程式設計之服務 2
除了系統定義的五種控制碼外 還有一種是 service control shutdown 使用者還可自定義控制碼,其取值範圍是128 255。使用者可以通過控制面板中的服務 項向特定服務程式的控制處理函式傳送控制碼,程式設計師可以呼叫系統函式 controlservice 直接向服務程式的控制處理函...
windows程式設計之檔案對映
當我們對檔案進行讀寫操作的時候,我們經常會呼叫readfile和writefile這兩個api,但是如果我們的檔案較大,幾百兆甚至幾g且需要時常修改值b的時候,這時那兩個函式可能就不大好了,這時微軟提供了另外一種方法 檔案對映,來使我們進行檔案操作。handle hfile,檔案控制代碼 lpsec...