是否仍然需要在System32中安装屏幕保护程序?

时间:2012-01-09 02:31:04

标签: c# .net windows screensaver

回到我的Delphi时代,我写了几个屏幕保护程序 - 每个屏幕保护程序都被放入System32文件夹,Windows XP显示控制面板看到它并使其可用。一切都好。

我现在正在用C#编写一个更复杂的屏幕保护程序,它必须分布在多个程序集中(它使用插件模型:将所有程序集合并为单个可执行文件不是一种选择)。

将所有文件转储到System32似乎不是很整洁 - 更不用说它根本不适用于64位系统。

还有其他方法可以在Windows系统上安装屏幕保护程序吗?

如果有必要,我愿意依赖Vista / Win7。

我到目前为止唯一的建议是在Program Files下正常安装大部分屏幕保护程序,并将触发器/启动器放入System32。

2 个答案:

答案 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。