Monday, January 04, 2010

AutoShutDown

自動關機程式。因為電腦有預約錄影的關係,所以自動開機完之後如果沒開啟錄影程式就得自動關機,不然電費就很貴了…。

之前找了很久,不是要錢就是不合需求,後來在這裡 http://plog.tcc.edu.tw/post/530/8256 找到合用的,它是用 windows 內建的 shutdown.exe 加上排程完成需求。不過有個缺點就是會強制關機,不會詢問使用者…常常電腦用到一半就強制關機了。

所以因緣際會下就自己寫一個吧,其實沒有花很多時間,只是寫程式時需要很專心罷了。

需求:

  • 可以分每週的哪一天,那個時候關機。
  • 不需安裝。
  • 開機自動執行
  • 要關機前先等30秒,之後沒回應自動關機。

自動關機是呼叫 ExitWindowsEx() 或 InitiateSystemShutdown(),不過 InitiateSystemShutdown() 有範例可以抄。

開機自動執行很簡單,直接寫 registry 就行。不過在 Windows Vista/7 可能行不通。目前應該不會用 Windows 7 啦,實在太貴了。

config 檔案是用 xml 格式,parser library 用 xerces,好像有點牛刀殺雞?

結果花比較多時間的是透過 WMI 取得系統資訊…。

下載地點:http://cid-1afa215285f12424.skydrive.live.com/self.aspx/.Public/AutoShutDown.7z

codeblock