如何看你的電腦開了多久了?

來源:互聯網
上載者:User

                                                          如何看你的電腦開了多久了?

今天下午我睡了一會,起來見哥在玩遊戲,我就問他玩了多久了,我要用電腦啦,他笑著說只玩了一會而已,不過還

是儲存了遊戲讓我用,但我有點不相信他剛開的機,一摸鍵盤這位置的溫度就知道開了不短啦,我就想我怎麼才能

搞一個程式,一運行就可以告訴我電腦開機多久啦,我想,系統自身好像沒有這個功能,我可以寫一個小程式,在開

機時自動運行,運行時把當時的系統時間記錄下來,這樣我就可以隨時得到系統的已已耗用時間啦,不過這樣一個程

序老在記憶體中獃著,雖說肯定不會大,但畢竟不是正確的方向.我又想,我可以在開機時只運行一下,然後把擷取到

的系統時間存在註冊表中,再次啟動程式時,做個減法,不就可以了.不過我想這種資訊系統應該是記錄在案的吧,

所以去查MSDN,發現有個叫GetTickCount()的函數可以擷取系統自開機到當前的系統啟動並執行milliseconds數.不

過這個函數返回一個32位的DWORD值,只能存放小於49.7天的時間值.在MSDN介紹這個函數的頁面中有這麼一段話

:
To obtain the time elapsed since the computer was started, retrieve the System Up Time counter in

the performance data in the registry key HKEY_PERFORMANCE_DATA. The value returned is an 8-byte

value. For more information, see Performance Monitoring.
呵呵,系統果然在註冊表中自動記錄了這個資訊,不過註冊表操作我還不會,就先用GetTickCounter()實現如下:
void CTimeElapsedDlg::OnOK()
{
 // TODO: Add extra validation here
 DWORD elapsedTime;
 elapsedTime=GetTickCount()/1000;  //get seconds
 UINT hours=elapsedTime/3600;
 UINT minutes=elapsedTime%3600/60;
 UINT seconds=elapsedTime%3600%60;
 char times[100];
 sprintf(times,"系統已運行%d小時%d分鐘%d秒!",hours,minutes,seconds);
 MessageBox(times);
 CDialog::OnOK();
}
下一步,我想直接在對話方塊中輸出那句話,而不是用一個MessageBox!
現在我的折衷的辦法是在下面放一個靜態文字框,預設標題是Null 字元串,等到要顯示時就更新靜態文本的標題,呵

呵 !
 GetDlgItem(IDC_TIME)->SetWindowText(times);
這樣就可以.下次知道如何在對話方塊介面上輸出文字時再改寫它.
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.