我正在开发一个包含启动管理器的工作程序。我让用户可以删除程序的启动项,但无法禁用启动项。
使用 CCleaner 程序,用户可以启用或禁用此功能。有人能解释一下他们是如何做到这一点的吗?我查看了注册表,但没有发现启动启用或禁用时注册表项有任何差异。这个设置在其他位置吗?
编辑:我使用 RegFromApp 监控注册表,同时启用和禁用多个程序的启动。结果发现,如果键不存在,它实际上会创建键。
答案1
由于我不是 CCleaner 的开发人员,我无法向您提供有关他们如何管理这一点的具体细节,但一般来说,以下条目如下:
32位:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MsConfig
64位:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Shared Tools\MsConfig
将容纳“已禁用”的启动条目。
答案2
我相信两种可能性:
- 禁用的启动条目存储在配置文件 (.ini) 中。
- 在注册表编辑器中这些值存储在:
HKEY_LOCAL_MACHINE\Software\Microsoft\Shared Tools\MsConfig\startupreg
。