2017-11-11 117 views
0

我有一個Windows窗體應用程序需要更新註冊表值。當我調試應用程序時,值正在正確保存。但是,當完成安裝程序(Visual Studio安裝程序項目 - .vdproj)後啓動應用程序時,應用程序將正常啓動,但不會正確保存註冊表值。如何以「系統」用戶身份更新註冊表值?

我沒有得到任何錯誤,但似乎無法找到位置的條目。

如果我雙擊.exe文件,正在正確保存這些值。

是因爲安裝程序以「System」用戶身份啓動應用程序嗎?

我該如何解決這個問題?

+0

您的安裝程序要求UAC提升,並獲取它,這使您從安裝程序運行中啓動的程序也升級。當你在註冊表中瀏覽時,這通常會產生很大的差異。儘管在運行提升時爲什麼會遇到問題還不太清楚,但應該解決這個問題。而不是隱藏這樣做的代碼。沒有簡單的方法來啓動一個未升級的程序,所以不要這樣做。 –

+0

您應該說您的代碼嘗試更新哪些註冊表項,但是如果它們是HKCU條目,例如,您將看到與系統帳戶運行的差異。目前還不清楚爲什麼你需要一個程序來創建註冊表項,當安裝程序會爲你做這件事,它會工作。 – PhilDW

+0

@PhilDW我明白我的方法不正確,並且能夠擁有由設置本身創建的條目。 –

回答

1

您應該說您的代碼嘗試更新哪些註冊表項,但是如果它們是HKCU條目,例如,您將看到與系統帳戶運行的差異。

目前還不清楚爲什麼你需要一個程序來創建註冊表項,當安裝程序會爲你做這件事,它只會工作。在註冊表視圖中的Visual Studio安裝項目中。您可能希望存儲在註冊表中的許多值可能作爲標準Windows Installer屬性提供,並使用方括號語法(如[TARGETDIR])存儲它們。

相關問題