system自動關機函式

wzm10455發表於2012-12-22
ime_t t; time(&t);

函式名稱:    time 
函式原型:    time_t time(time_t *timer) 
函式功能:    得到機器的日曆時間或者設定日曆時間 
函式返回:    機器日曆時間 
引數說明:    timer=NULL時得到機器日曆時間,timer=時間數值時,用於設定日曆時間,time_t是一個long型別 
所屬檔案:    <time.h>

#include <time.h> 
#include <stdio.h> 
#include <dos.h> 
int main() 
{ 
    time_t t; 
    t=time(); 
    printf("The number of seconds since January 1,1970 is %ld",t); 
    return 0; 
}

 


Sleep函式  簡介:
  Sleep函式,用於暫停程式的執行過程,使用時要帶上標頭檔案#include <windows.h>!
  注意:
  Sleep中的第一個英文字元為大寫的"S"!!如果是小寫會導致編譯錯誤!!
  Sleep函式的一般形式:
  Sleep(nusidned long);
  其中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函式滯留1秒的話,應該是Sleep(1000);
  VOID_cdeal Sleep(nusidned long);
  "nusidned long"可以是變數,也可以是整型!但一定要是無符號的!!既沒有“-”號!
  例:
  #include<windows.h> //標頭檔案
  #include <stdio.h>
  int main()
  {
  int a;
  a=1000;
  Sleep(a);
  printf("%d",a);
  }

 

 

SYSTEMTIME結構定義如下:
SYSTEMTIME STRUCT
{  WORD wYear; 年
  WORD wMonth;月
  WORD wDayOfWeek;星期,0=星期日,1=星期一...
  WORD wDay;日
  WORD wHour;時
  WORD wMinute;分
  WORD wSecond;秒
  WORD wMilliseconds;毫秒
  };(SYSTEMTIME ENDS)
  結構中的欄位全為word型別,而Win32程式中用的往往是dword型變數,所以在使用這些資料之前往往要先把它們轉換為dword型別,用movzx指令就可以實現。
  與獲取系統時間的函式相對應,可以用下面的兩個函式設定系統時間: 
  invoke GetLocalTime(SystemTime st);獲取本地時間
  invoke GetSystemTime(SystemTime lt)獲取格林威治標準時間

 


#include <stdlib.h>

int main( )
{
    system("shutdown -f -s -t 3600"); //3600秒後關機
}


定時關機程式是一個簡單的小程式,核心部分的設計思想無非就是:1.設定關機時間→2.設定定時器,捕獲系統當前時間與關機時間對比→3.當系統當前時間與設定的關機時間相等時呼叫關機函式關閉系統。大多數的定時關機程式第一步和第二步都沒什麼區別,大同小異,因此,這裡我也不浪費時間“唐僧”了。我們來討論一下第三步。不知道大家在寫關機程式時是採用哪個函式來關閉系統的?ExitWindows、ExitWindowsEx還是InitiateSystemShutdown?這幾個函式都是要先取得管理員特權才能關機,貌似有點麻煩。那麼,有沒有別的簡單直接點的函式可以用呢?有,那就是強大的system函式。這個函式在標頭檔案stdlib.h中宣告,主要作用是在命令列輸入系統命令。在寫命令列程式時我們知道,用system("pause")可以讓程式暫停執行,用system("ping www.163.com")可以ping網易的伺服器,用system("systeminfo")可以檢視系統詳細配置資訊,用system("ipconfig")可以檢視本地主機的IP地址資訊…… 呼叫system就如同我們直接在命令列手動輸入系統命令一樣。那麼,命令列關機命令大家清除吧?——shutdown,對就是它。接下來該怎麼做應該很瞭然了吧?在你的程式中新增諸如system("shutdown -s -t 10")這樣的一句程式碼就OK了。是不是比用ExitWindows之類要簡單快捷得多呢?



相關文章