VC 獲取Windows系統開機時間

2021-10-05 04:48:15 字數 1427 閱讀 9435

以下提供兩種方法獲取windows系統的開機時間

第一種是使用c++的函式,該方法使用當前時間減去系統執行時間,秒級的,偶爾存在1秒的差異

第二種是使用windows的api,該方法獲取到的時間與cmd命令systeminfo獲取的時間是一致的,故推薦使用這種方法獲取系統開機時間

1、c++

void getsystemuptime()

2、

#include#include#define nt_success(x) ((x)>=0) 

const uint systemtimeinformation = 3;

typedef struct system_time_information;

typedef long (__stdcall *fnntquerysysteminformation)(

in uint systeminformationclass,

out pvoid systeminformation,

in ulong systeminformationlength,

out pulong returnlength optional);

static fnntquerysysteminformation ntquerysysteminformation = null;

int main(void)

long status;

system_time_information sti;

status = ntquerysysteminformation(systemtimeinformation, &sti,sizeof(sti),0);

if(no_error != status)

filetime ft1,ft2;

systemtime st;

memcpy_s(&ft1, sizeof(ft1),&sti.likeboottime,sizeof(sti.likeboottime));

//將其轉為檔案時間

//將乙個filetime結構轉換成本地時間

if(0 == filetimetolocalfiletime(&ft1,&ft2))

//將檔案時間轉為系統時間

if(0 == filetimetosystemtime(&ft2,&st))

printf("date: %02d-%02d-%04d time: %02d:%02d:%02d ",st.wmonth,st.wday,st.wyear, st.whour,st.wminute,st.wsecond);

getchar();

return 0;

}

參考:

獲取windows系統時間

獲取系統時間,這個方法比較簡單 sytimeemtime time getlocaltime time 獲得當前本地時間 getsytimeemtime time 這乙個是獲得格林威治時間,一般不用 sytimeemtime結構說明 typedef struct systemtime systemt...

windows系統安裝redis 設定開機自啟動

redis server redis.windows.conf redis server service install redis.windows service.conf loglevel verbose設定完成之後,服務中就可以看到如下圖的redis服務,表示安裝開機自啟服務成功 啟動報錯10...

獲取Windows系統版本資訊

1.獲取windows版本 peb結構 在peb結構中存放著作業系統版本資訊的函式,ulong osmajorversion a4h 偏移位址a4h顯示作業系統主版本號 ulong osminorversion a8h 偏移位址a8h顯示作業系統子版本號 通過讀取osmajorversion和osm...