屏幕保护程序是否仍必须安装到System32中?

Bev*_*van 4 .net c# windows screensaver

回顾我在Delphi的日子,我写了几个屏幕保护程序-每个屏幕保护程序都是一个可执行文件,已放入该System32文件夹中,Windows XP Display控制面板在该文件夹中看到了该文件并使其可用。都好。

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

将所有文件转储System32似乎不是很整洁-更不用说它根本无法在64位系统上运行。

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

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

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

Bev*_*van 5

我发现了更多信息...

屏幕保护程序不必安装在System32(或SysWoW64)中。

但是,控制面板找不到它,也不会列出它供选择。

除非将其配置为当前屏幕保护程序。

让我解释一下...当前的屏幕保护程序由中SCRNSAVE.EXE找到的注册表项指定HKEY_CURRENT_USER\Control Panel\Desktop。此项的值是.SCR文件的完整路径。

所述显示器(XP)或屏幕保护程序(Win7的)控制面板扫描System32(和SysWow64在64位系统),用于.SCR文件。如果不同,它还会扫描包含当前屏幕保护程序的文件夹。

因此,如果您直接设置注册表项,则屏幕保护程序将在控制面板中列出并可供选择。但是,一旦用户选择了不同的屏幕保护程序,控制面板的下一次调用将不会列出新的屏幕保护程序。