回到我的Delphi时代,我写了几个屏幕保护程序 - 每个屏幕保护程序都被放入System32
文件夹,Windows XP显示控制面板看到它并使其可用。一切都好。
我现在正在用C#编写一个更复杂的屏幕保护程序,它必须分布在多个程序集中(它使用插件模型:将所有程序集合并为单个可执行文件不是一种选择)。
将所有文件转储到System32
似乎不是很整洁 - 更不用说它根本不适用于64位系统。
还有其他方法可以在Windows系统上安装屏幕保护程序吗?
如果有必要,我愿意依赖Vista / Win7。
我到目前为止唯一的建议是在Program Files
下正常安装大部分屏幕保护程序,并将触发器/启动器放入System32。
答案 0 :(得分:5)
我找到了更多信息......
屏幕保护程序不必须安装到System32
(或SysWoW64
)。
然而,控制面板无法找到它,也不会将其列出以供选择。
除非将其配置为当前屏幕保护程序。
让我解释一下......当前的屏幕保护程序由SCRNSAVE.EXE
中的HKEY_CURRENT_USER\Control Panel\Desktop
注册表项指定。此键的值是.SCR
文件的完整路径。
显示(XP)或屏幕保护程序(Win7)控制面板扫描System32
(以及64位系统上的SysWow64
){ {1}}个文件。它还扫描包含当前屏幕保护程序的文件夹,如果不同的话。
因此,如果直接设置注册表项,屏幕保护程序将由控制面板列出并可供选择。但是,只要用户选择了不同的屏幕保护程序,控制面板的 next 调用就不会列出新的屏幕保护程序。
答案 1 :(得分:3)
32位屏保进入system32,而64位屏保则进入SysWoW64。