【发布时间】:2020-01-21 18:52:06
【问题描述】:
我可以使用 NSIS 安装程序安装应用程序,后来我将 TaskManager->Startup 首选项更新为禁用。卸载并重新安装应用程序后,启动首选项默认为以前的用户首选项“禁用”。我希望安装程序在新安装后始终强制启用,以便应用程序在重新启动时启动。如何使用 NSIS 编码来实现这一点。
谢谢
【问题讨论】:
标签: windows installation startup nsis preferences
我可以使用 NSIS 安装程序安装应用程序,后来我将 TaskManager->Startup 首选项更新为禁用。卸载并重新安装应用程序后,启动首选项默认为以前的用户首选项“禁用”。我希望安装程序在新安装后始终强制启用,以便应用程序在重新启动时启动。如何使用 NSIS 编码来实现这一点。
谢谢
【问题讨论】:
标签: windows installation startup nsis preferences
我相信微软希望这是一个纯粹由用户控制的设置,但无论如何任务管理器使用的方法是在 HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE 中的以下注册表位置中修改适当的 REG_BINARY 值,视情况而定:
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run32
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder
启用的项目包含数据:
02 00 00 00 00 00 00 00 00 00 00 00
或
06 00 00 00 00 00 00 00 00 00 00 00
禁用项包含以 03000000... 或 07000000... 开头的数据,后跟一些十六进制值 [也许是时间戳?],例如:
03 00 00 00 F4 0B 28 C9 9D 79 D1 01
我不清楚以 02 和 06 开头的有什么区别,但似乎 02s 变为 03s 而 06s 在禁用时变为 07s。
为确保您的启动项已启用,请使用 WriteRegBin 将其设置回 020000000000000000000000 或 060000000000000000000000,或者仅使用 DeleteRegValue 并完全删除该值。
【讨论】: