配置安装程序以启用/禁用Windows启动上的启动

时间:2019-05-08 19:36:27

标签: windows wix

我正在尝试安装Windows 8.1及更高版本的应用程序,以便可以从TaskManager以及Windows>设置>应用程序中启用和禁用该应用程序以在Windows上启动。注册表是这样创建的:

<RegistryValue Id="myProgram.exe" 
               Root="HKLM"
               Action="write"
               Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Run" 
               Name="My Program" 
               Value="[INSTALLFOLDER]myProgram.exe" 
               Type="string"/>

这将程序成功添加到启动应用程序列表中,并且可以从任务管理器中禁用/启用它,但不能通过Windows>设置>应用程序进行控制。该应用程序显示在“ Windows设置”列表中,但是您可以通过进入注册表并查看HLM \ software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ StartupApproved \ Run的值来告诉您启用/禁用未更改任何内容\我的程序不会更改。为什么Windows设置无法控制此启动应用程序?

此外,如果我们要在HLM \ software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ StartupApproved \ Run \ My Program中预先输入一个启用/禁用启动的值,我们将为每个选项使用哪个二进制值? / p>

2 个答案:

答案 0 :(得分:3)

根据该网站https://winaero.com/blog/how-to-add-or-remove-startup-apps-in-windows-10/,“现代”启动应用程序系统设置仅适用于HKCU中的运行键。

我尚未测试本文。您可能要使用注册表快照/ diff和/或processexplorer之类的分析工具来验证此新设置屏幕的工作。

答案 1 :(得分:0)

HKCU :我不确定,我现在无法测试。尝试一些提示。正如克里斯所说:为什么您要写 HKLM ?将其更改为 HKCU 并查看是否可行:

<RegistryValue Id="myProgram.exe" 
           Root="HKCU"
           Action="write"
           Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Run" 
           Name="My Program" 
           Value="[INSTALLFOLDER]myProgram.exe" 
           Type="string"/>

自动运行 :SysInternals提供了一个工具,可用于检查自动运行问题:https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns。还有direct run from source link。使用此工具,似乎在禁用列表中的项目时,会将它们移动到名为 AutorunsDisabled 的子项:

AutorunsDisabled