2013-01-02 23 views
2

我需要安排innosetup 5運行下一次重啓以執行升級。我的應用程序EXE應該在系統托盤中運行的所有時間,運行一個更新的最佳方法是在重新啓動時運行它明確規定innosetup運行下一次重新啓動?

我發現this question但它是MSI,和我不舒服touching user's registry

那麼,是否可以安排innosetup在下次重啓時運行?(理想情況下,我需要的東西適用於Windows XP或更高版本)?如果是這樣,怎麼樣?

+0

註冊表是運行一次條目的唯一方法。由於您的應用程序已經在啓動時運行,爲什麼不設置一個標誌,以便您的應用程序在下次啓動時運行設置,然後退出? – Deanna

+0

更好的解決方案是讓安裝程序自動關閉並重新啓動應用程序,避免重新啓動。使用Windows Vista/7和最新版本的Inno,您可以自動關閉;需要對應用程序或安裝程序進行一些較小的更改才能使其再次啓動(請參閱[重新啓動管理器API](http://msdn.microsoft.com/zh-cn/library/windows/desktop/cc948910.aspx )在MSDN)。對於Windows XP或更低版本,您必須自己處理關閉應用程序。 – Miral

+0

@Miral謝謝,但我想避免不得不關閉我的應用程序(即使是短暫的時間),對於初學者來說,它對用戶來說很煩,第二次重啓是更新的最佳時機,而不會干擾用戶的工作 – TheDude

回答

4

這是可能的,但它需要設置一個註冊表值(如question you linked to said)。

HKLM\software\microsoft\windows\currentversion\RunOnce鍵中創建一個值將導致在下次啓動時運行該值。

另外,由於您的應用程序已經在啓動時運行,爲什麼不只是設置一個標誌,以便您的應用程序在下次啓動時運行設置,然後退出?

+0

'why not just設置一個標誌,讓您的應用程序在下次啓動時運行設置,然後退出?'嗯,我有一個很好的理由:我沒有考慮它!真的,非常感謝你! – TheDude

+0

使用註冊表是可以的,因爲這是多少其他系統呢(就像Inno的「Product.iss」一樣) – TheBigSot

相關問題