我已經寫了一個WPF應用程序和一個附帶的Windows安裝項目。該應用程序具有「啓動時運行」的選項,此時將一個密鑰添加到SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run註冊表中。安裝項目默認情況下不會創建該密鑰,因爲該選項默認爲禁用;但是,我想確保是否有人卸載該應用程序的註冊表項將被刪除。如何在Windows安裝項目中清理'啓動時運行'註冊表項?
這可能嗎?另外,如果密鑰未被刪除,行爲是什麼?我假定Windows會嘗試運行該應用程序,但什麼都不會發生,但我還沒有測試這種情況。
編輯 - 按照要求,該註冊表項從代碼設置如下:
using (var key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
if (key != null)
{
key.SetValue("MyApp", "\"" + System.Reflection.Assembly.GetExecutingAssembly().Location + "\"");
}
}
因爲默認情況下,我不希望該應用在啓動時運行它做這種方式;因此,在用戶選擇使用該設置之前,不應創建註冊表項。
所以我想答案是,這是不可能在我的情況下,因爲你的第三款正是我在我的應用程序中做的。我測試瞭如果將該選項設置爲true,然後卸載並重新啓動,會發生什麼情況。即使應用程序不再存在,鍵仍留在註冊表中時沒有可見的警告/錯誤;然而,我感到內疚可能會在用戶的系統上留下無用的註冊表鍵,他們必須手動清理。 – Paul