給老婆寫的關機程序
前幾天老婆想要一個自動關機的軟件,這種小軟件網上下載不是有廣告就可能有病毒,或者覺得不好用。這么簡單的軟件,自己應該很容易寫一個吧。首先用幾分鐘寫出一個bat腳本。(腳本賣萌的地方,不要見笑哦)
- @echo off
- echo 自動關機程序,獻給我親愛的老婆!
- echo 請輸入需要關機的延遲時間。
- echo 請先保存、關閉重要的程序,到時候會強制關機,不能后悔哦。
- :again
- echo 關機時間(秒)=
- set /p SHUTDELAY=
- echo 將在 %SHUTDELAY%秒后關機,確認輸入ok然后回車,取消請關閉本窗口。
- echo 如果要重新輸入關機時間,請按回車。
- set /p AGREE=
- if "%AGREE%"=="ok" shutdown -f -s -t %SHUTDELAY%
- if not "%AGREE%"=="ok" goto again
- echo 老婆的命令已經生效了。請關閉本窗口。
- pause>nul
當然這樣的腳本并不能充分顯示老公的“手藝”,于是動手寫一個窗體程序。本來可以用C++ MFC,但是想想也太沒有挑戰性了,順便想體驗一下高生產率的語言帶來的好處(參考此文),所以用C#寫了一個小工具。大家可以到我的公開SVN上下載代碼。代碼基于GPL協議發布。
SVN地址: http://svn.zhu.im/just-for-fun/CsharpProjs/ShutdownMyPC/
代碼中依然有賣萌的地方,切勿拿來交作業什么的。:)
以下是運行界面:最小化后可以隱藏在系統托盤哦
但 是,這樣一個東西在發布給用戶(嗯,我老婆一個人)時,遇到了麻煩。原來她辦公的電腦時很久很久沒有更新的Windows XP,有沒有.Net Framework不知道,但肯定沒有.net framework 4. 于是想要制作一個安裝程序,把framework集成到安裝包里。結果,我沒有找到任何可用的解決方法。如果按照微軟標準做法,使用聯機下載方式,那不聯 網的電腦怎么辦?如果使用本地安裝包,我本來數k字節的軟件,瞬間變成數十M,size可是錢啊。不論時網絡傳輸還是介質拷貝,文件一大什么方法都不優雅 了。這簡直就是悲劇。幸好,家里的Windows 7在我的悉心呵護下,長期保持自動更新,終于能用來給“客戶”演示了。
另外一個感想就是,程序員真的需要堅持不懈的克服“程序員情結”。我寫軟件為了好玩,加入倒計時聲音警告功能、加入了幾種色彩警告,不僅沒有得到“用戶”好評,反而被批“弄那么麻煩干嘛”。是啊,KISS吧,你懂的。(不過我老婆會領會為另外一種意思,兩者都很好)
附上exe程序,電腦中已經安裝了.Net framework 4.0,自己愿意且會安裝的人可以下載來玩玩:
下次我會用C++實現盡可能少依賴性的軟件了。