定時自動關機程式

2021-04-15 16:55:24 字數 1220 閱讀 2635

一、問題的提出:執行某任務的計算機,尤其是伺服器,如果能實現在無人職守的情況下,到達指定時間時自動關機,那麼將極大地減輕系統管理員的負擔,也會給我們的日常工作帶來很大方便。 

筆者用delphi開發的這個定時自動關機

程式,適用於目前兩類的windows系列

作業系統:從windows 95/98/me到windows nt/2000/xp。 

二、程式的功能有: 

1.使用者自己設定關機時間,通過自定義函式isvalidtime()判斷使用者輸入的時間是否有效。 

2.定時強制自動關機:對於windows 95/98/me,直接呼叫api函式exitwindow***()關機。對於nt/2000/xp,需要取得計算機名,獲得關機特權後,才能關機:首先呼叫openprocesstoken()函式得到訪問令牌的控制代碼,然後呼叫adjusttokenprivileges()函式來使能該特權。win32api定義了一組字串常量來標識不同的特權,如關機特權是 』seshutdownprivilege』。 

3.到達設定的關機時間時,延時30秒,以便使用者儲存檔案,或取消關機。兩類

作業系統都顯示倒記時,對於windows 95/98/me,只通過

程式介面顯示;對於nt/2000/xp,將呼叫系統的倒記時介面顯示。 

4.為了不占用工作列的空間,

程式顯示在托盤中。右鍵單擊托盤中的圖示,將顯示快捷選單。 

5.如果未到設定的關機時間,系統要關閉,該

程式能截獲關機訊息,由使用者選擇是否關機。原理是:當使用者關閉windows時,系統會傳送給各應用

程式乙個訊息wm_queryendsession,告訴各應用

程式要關機了,如果反饋回來的訊息值為0,就不能關機。因此,截獲wm_queryendsession,並反饋回0,就大功告成了。 

6.在記憶體中只執行本

程式的乙個例項。原理是:利用windows 的全域性原子表資訊來實現此功能。windows 的全域性原子表可以被當前所有應用

程式訪問,它一共可包含37 項內容。

程式執行時,首先檢查在表中有無本

程式的資訊,如有,則提示後退出。如沒有,則在表中增加該

程式的資訊。

程式最後退出時要從表中移走資訊以便

程式能再執行。   

四、源程式: 

五、說明:本

程式在windows xp下,用delphi 6.0開發,在windows 95/98/me和windows nt/2000/xp下執行成功。 

Windows XP的定時自動關機

windows xp的關機是由shutdown.exe程式來控制的,位於windows system32資料夾中。如果想讓windows 2000也實現同樣的效果,可以把shutdown.exe複製到系統目錄下。所以,首先要保證windows system32目錄下有shutdown.exe這個程式...

定時自動關機命令超級大全

開始 執行 對應命令 每天定時自動關機 at 02 30 every m,t,w,th,f,s,su shutdown s f t 30 這裡系統將在每天的2 30自動關機,every代表每個,m,t,w,th,f,s,su 代表星期幾 比如說 每個星期2 的 13點關機 命令是at 13 00 e...

自動關機批處理程式

start clscolor 1f rem 使用color命令對控制台輸出顏色進行更改 mode con cols 41 lines 18 rem mode語句為設定窗體的寬和高 set tm1 time 0,2 set tm2 time 3,2 set tm3 time 6,2 echo date...