我有一臺每臺機器安裝的應用程序(因爲它使用的是服務)。應用程序的一部分是系統托盤應用程序,它允許登錄用戶監視服務操作。我想弄清楚如何最好地安裝這個監視器應用程序。每個用戶和Windows安裝程序的啓動應用程序
應該允許每個單獨的用戶配置他/她是否要在登錄時運行監視器應用程序。這意味着HKLM/Software/Microsoft/Windows/Run鍵已經不存在 - 這隻允許所有用戶進行配置。
當然有相應的HKCU-key,但是如果只是簡單地安裝到這個鍵上,它只會用於安裝應用程序的用戶。
SO問題Launch app on startup for all users, but also allow per-user setting (Windows)指的是簡單地具有用戶可配置的regkey或類似的技術,由啓動應用程序檢查以確定是否運行。但這意味着應用程序必須啓動才能檢查值,如果我可以避免它,我寧願不臃腫用戶的啓動。這種方法的好處是可以在卸載時刪除註冊表。
完成安裝部分的另一種方法可能是使用Active Setup在登錄時創建HKCU regkey,但是這是沒有記錄的,在我看來,卸載應用程序時沒有簡單的方法來卸載regkey。我會假設在HKCU的Run鍵下留下注冊表值可能會在卸載後爲用戶造成問題。
是否有標準的方式來處理每個用戶啓動應用程序使用Windows Installer?特別是關於如何卸載這些後來呢?
謝謝你的回答,我真的很感激。從這兩個選擇中,聽起來好像主動設置是要走的路,儘管我對使用未記錄的功能有點猶豫。但是卸載場景呢?我將如何擺脫reg鍵? – villintehaspam 2010-06-14 13:19:31
基本上,您並沒有真正的清理HKEY_CURRENT_USER註冊表項的選項,而您嘗試執行的操作只會添加*更多*無法清理的內容。 所以,一般來說,安裝程序應該能夠刪除HKEY_LOCAL_MACHINE鍵,也許是登錄的當前用戶的鍵,但就是這樣。 – ewall 2010-06-15 15:58:43
如果我理解正確,這基本上意味着不應該在HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run中使用reg值?由於沒有辦法刪除這樣的密鑰,這意味着即使在卸載之後,Windows也會嘗試啓動該應用程序,這很可能會向用戶發出錯誤消息......哪種方式可以讓我回到原來的方式... :) – villintehaspam 2010-06-15 17:22:41