「每用戶」安裝模式似乎有一些神祕的內幕。「每個用戶」安裝如何以及爲什麼設法寫入HKLM?
我們的應用程序有autoupdater,不使用insaller,我想更新「添加/刪除程序」窗口中顯示的應用程序版本。我很驚訝的是,設置信息(和版本太)被actualy存儲在
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{ProductId}
和
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\{SId}\Products\{ProductId}
所以我的問題是:安裝程序如何管理寫有沒有請求海拔?爲什麼每個用戶安裝都在HKLM中註冊,尤其是第一次入口,它根本不涉及任何特定用戶?
其他隨之而來的更實際的問題是如何從代碼更新它(當然沒有提升)?
控制面板>管理工具>服務> Windows安裝程序。指向c:\ windows \ system32 \ msiexec.exe,它使用系統帳戶運行。您可以編寫自己的服務來在沒有提升的情況下戳HKLM。說到用戶進行安裝,需要提升高度,這是我們無法提供的幫助。只是不要隱藏這樣的代碼,不錯,請求提升。 –
關於標題中的問題:從這裏看https://msdn.microsoft.com/en-us/library/windows/desktop/aa367559%28v=vs.85%29.aspx(Windows Vista部分)安裝程序可以如果用戶具有管理權限,則寫入HKLM。 – VMykyt
@HansPassant,當然我可以要求提升。但是,應用程序不需要管理員權限來工作,也不需要更新,並且要求升級只是爲了更新註冊表中的行(不是很重要)似乎有點太過分了。 –