Installation 如何让我的安装程序写入HKCU注册表树?

Installation 如何让我的安装程序写入HKCU注册表树?,installation,registry,user-accounts,Installation,Registry,User Accounts,我的安装程序需要管理员权限。在安装过程中,一些值会写入当前登录用户注册表的HKCU树。但是,如果此用户帐户是所谓的标准帐户,则用户必须在安装程序启动时为管理员帐户指定凭据。然后将这些值写入与此管理员帐户相关的HKCU树,而不是当前登录用户的HKCU。 当安装程序希望将一些数据写入本地AppData并希望在桌面上创建快捷方式时,也会出现同样的问题 如何避免这种情况?发生这种情况是因为您使用的是每台机器安装,它将数据写入每用户位置(HKEY_CURRENT_user) 正确的方法是使用仅每个用户位置

我的安装程序需要管理员权限。在安装过程中,一些值会写入当前登录用户注册表的HKCU树。但是,如果此用户帐户是所谓的标准帐户,则用户必须在安装程序启动时为管理员帐户指定凭据。然后将这些值写入与此管理员帐户相关的HKCU树,而不是当前登录用户的HKCU。 当安装程序希望将一些数据写入本地AppData并希望在桌面上创建快捷方式时,也会出现同样的问题


如何避免这种情况?

发生这种情况是因为您使用的是每台机器安装,它将数据写入每用户位置(HKEY_CURRENT_user)


正确的方法是使用仅每个用户位置的每个用户安装或仅每个机器位置的每个机器安装(HKEY_LOCAL_machine,而不是HKEY_CURRENT_user)。

如果您要求管理员权限,通常意味着您正在为所有用户进行系统范围/机器安装。创建这种类型的安装程序时,最好不要写入HKCU或%USERPROFILE%,这不仅是因为您可能会为“错误的用户”执行操作,而且您也会为该用户而不是所有用户初始化安装

我建议您将此通用数据写入
HKLM\Software\YourCompany\YourApp\CommonData
和/或
\YourCompany\YourApp\CommonData
,然后在用户首次运行应用程序时将此数据导入应用程序


您可能还想考虑创建一个每个用户安装程序(如Chrome),但这意味着您可以< <强> >对/HUCU和%USER配置文件%>p> 您是说安装程序需要“以管理员身份运行”,还是说安装程序本身会提示输入凭据,以便模拟管理员?@ShiggityShiggityShwa当登录用户是标准Windows帐户时,安装程序会提示输入凭据。当登录的用户是管理员帐户时,UAC屏幕会出现提示。您需要谁的管理员权限?@Anders我需要写入程序文件folder@Dabblernl因为您正在安装驱动程序或服务?