2010-04-26 27 views
1

我有一臺每臺機器安裝的應用程序(因爲它使用的是服務)。應用程序的一部分是系統托盤應用程序,它允許登錄用戶監視服務操作。我想弄清楚如何最好地安裝這個監視器應用程序。每個用戶和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?特別是關於如何卸載這些後來呢?

回答

1

在我看來,你接近回答你自己的問題。我想你可能只需要分配配置是否爲每個用戶自動運行的責任......呃,讓我解釋一下:

You can use either a self-healing component of HKCU Registry keys or ActiveSetup to ensure that every user gets the configuration

如果您使用HKCU註冊表項,您的MSI安裝程序需要具有「密鑰文件」作爲HKCU條目的組件 - 因此,第一次新用戶啓動該程序時,Windows Installer將自行完成 - 寫入這些條目。其中一個條目是HKCU/Software/Microsoft/Windows/Run值,但不是的關鍵值,因爲您希望用戶能夠將其刪除,並且不會在每次運行程序時都回來!然後,您會希望程序有一個選項來刪除自動運行值。如果你使用ActiveSetup(我推薦它,因爲它是simple,它「只是工作」),那麼你可能會發現做一個簡單的應用程序(或VBScript或這樣)最簡單,它提示用戶,如果他們想要監控程序自動運行。因此,您的ActiveSetup將啓動提示程序/腳本,並且提示程序將創建HKCU/Software/Microsoft/Windows/Run值,或者更好的是,在用戶的「開始」菜單\程序\啓動目錄中創建一個快捷方式。

+0

謝謝你的回答,我真的很感激。從這兩個選擇中,聽起來好像主動設置是要走的路,儘管我對使用未記錄的功能有點猶豫。但是卸載場景呢?我將如何擺脫reg鍵? – villintehaspam 2010-06-14 13:19:31

+0

基本上,您並沒有真正的清理HKEY_CURRENT_USER註冊表項的選項,而您嘗試執行的操作只會添加*更多*無法清理的內容。 所以,一般來說,安裝程序應該能夠刪除HKEY_LOCAL_MACHINE鍵,也許是登錄的當前用戶的鍵,但就是這樣。 – ewall 2010-06-15 15:58:43

+0

如果我理解正確,這基本上意味着不應該在HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run中使用reg值?由於沒有辦法刪除這樣的密鑰,這意味着即使在卸載之後,Windows也會嘗試啓動該應用程序,這很可能會向用戶發出錯誤消息......哪種方式可以讓我回到原來的方式... :) – villintehaspam 2010-06-15 17:22:41

0

有點低技術可能,但不能只是添加一個快捷方式到用戶的啓動文件夾(開始菜單/程序/啓動)?

+0

這與使用HKCU註冊表鍵有關安裝和卸載複雜性有什麼不同? – villintehaspam 2010-04-26 14:05:37

+0

我不確定你是什麼意思,但添加快捷方式到啓動文件夾我會說是一個相當標準的事情,應該很容易做任何設置創建者,我曾想過,據我記得上次我做到了(幾年前可能會出錯)我可以設置它來自動處理快捷方式。 – 2010-04-26 14:11:14

+0

我敢肯定,這將要求您爲所有用戶安裝,或者您可以創建一個廣告快捷方式(針對所有用戶),然後安裝每個用戶的註冊碼或快捷方式。在卸載應用程序時(至少對除執行卸載的用戶以外的任何其他用戶),我理解的每個用戶安裝的東西都會被留下。我錯了嗎? – villintehaspam 2010-04-26 14:21:45

0

我想你會在這種情況下使用HKLM /軟件/微軟/ Windows /運行。啓動時運行監視器應用程序的功能或者不屬於監視器應用程序,而不屬於安裝程序。在登錄時,監視器應用程序可以檢測到監視器應用程序是否第一次運行,並向用戶提供始終在啓動時始終運行監視器應用程序的選項。

相關問題