2012-04-26 46 views
3

Google的Chrome瀏覽器在Windows上擁有超級平滑的更新系統。它不需要管理權限,並且在不需要用戶交互的情況下進行更新。如何在Windows中創建Chrome風格的程序自我更新?

我正在嘗試創建類似於此的內容,並希望能夠提供有關如何執行此操作的任何建議。

他們的訣竅的第一部分是他們不像大多數Windows程序那樣安裝到Program Files,而是安裝到C:\Users\USER_NAME\AppData\Local\Google\Chrome\Application。這使他們的程序文件可以在沒有管理權限的情況下自行修改

看看那個目錄,我發現不僅有chrome.exe,而且還有old_chrome.exe。在網上搜索時,我發現chrome會將自身作爲old_chrome自動備份,以防更新過程不順利,但它仍然可以運行某些內容。

所以要創建一個輔助應用程序,作爲安裝包的一部分,您將執行轉移到(我認爲這在某種程度上是可行的),並且該輔助應用程序會在文件重命名並重新啓動時執行chrome.exe完成? (如果是這樣,assumedly這個助手應用程序又在啓動刪除由chrome.exe,解釋爲什麼我沒有看到它坐在那裏。)有沒有辦法簡單地有chrome.exe本身重命名爲old_chrome.exe和複製,並推出新的chrome.exe在那裏?

如果這是做這種工作的最佳方式,是否有任何預先構建的解決方案來做到這一點,我可以將其放入我的項目中,因爲這看起來相當普通的功能,或者我必須滾動這樣的東西自己?

或者,如果有更好的方法,它是什麼? (值得一提的是,Chrome的方法比Mozilla使用服務的新方法更加優雅和直接。)

+0

這個*可能適用於程序員.stackexchange.com,但即使如此它也可能過於寬泛 – 2012-04-26 19:49:50

回答

1

好吧,得到這個工作,這是它的工作原理。

不需要輔助應用程序。至少在Windows上,程序可以重命名,但不能刪除。因此,我在程序中添加了更新程序,並下載新文件。下載完成後,它會重命名舊的可執行文件,並將新的可執行文件移動到它的位置。

然後,您可以簡單地從舊的運行進程中執行新的可執行文件,然後退出舊的可執行文件。

瞧,沒有升級換舊版本的新版本。

相關問題