我正在尝试安装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>
答案 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
的子项: