我想在Windows启动时只为当前用户运行几个应用程序。
我可以通过以下方式实现:
RegistryKey oKey = Registry.CurrentUser.OpenSubKey("Software", true);
oKey = oKey.OpenSubKey("Microsoft", true);
oKey = oKey.OpenSubKey("Windows", true);
oKey = oKey.OpenSubKey("CurrentVersion", true);
oKey = oKey.OpenSubKey("Run", true);
oKey.SetValue("Application 1", "C:\\path\\to\\ap1.exe");
oKey.SetValue("Application 2", "C:\\path\\to\\ap2.exe");
但我正在尝试将其作为Visual Studio Installer项目的一部分运行。 我已添加了自定义操作,程序按预期启动,并且在XP中安装程序非常好用。
在Windows 7中,安装程序获得了提升的权限,除了在当前用户的注册表中插入条目之外,它还可以执行所有操作。但是,当作为独立应用程序(在安装程序项目之外)运行时,它会插入注册表项,而且不会获得提升的权限。
我唯一能想到的是,在权限提升的情况下,它正在尝试将条目插入管理员帐户中,而不是当前用户?还是我错过了什么其他内容?是否有另一种方法可以实现我的目标?
Registry.LocalMachine.OpenSubKey()
,会发生什么? - wasyl