之前接手教育部網路XX天使時。礙於開發時程上的緊迫也沒有對原本的code多做測試,直到上線以來常常會有使用者來電表示沒有啟動的問題。
最近針對問題點仔細查找了一下,經過使用者的回報與自行模擬 Bug 的重現後可能無法啟動的問題發生在 windows 的 registry 位置 HKLM and HKCU 的差異。
一開始我原本認定開機啟動的 registry 就是在
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
因為接手的 code 是這樣做,也實際上沒問題,所以也沒多做探究。
後來發生使用者在多帳號的系統下會無法啟動的問題。
經過拜訪 google 大神後才注意到有大大的不同
應該將原本的 By current user 的啟動機碼換成 by machine,如下
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
這樣要啟動的程式才可如預期在不同使用者登入時也會如預期啟動。
參考文章:
http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/AdminTips/Miscellaneous/WindowsProgramStartupLocations.html
http://msdn.microsoft.com/en-us/library/aa376977(v=vs.85).aspx
沒有留言:
張貼留言