0

我打算创建一个屏幕保护程序。也在考虑尝试一些 WPF。无论如何,我不太确定如何在文件系统中组织磁盘上的屏幕保护程序。我主要有两个相关的问题,我非常不确定如何解决:

  1. 通常,应用程序及其所有 3rd 方程序集、静态资源、图像等都存在于 Program Files 文件夹中,并从那里运行。例如C:\Program Files\MyScreenSaver。但是(如果我没有错过任何东西)Windows 中屏幕保护程序的可执行文件需要具有 scr 扩展名并位于系统文件夹中,例如C:\Windows\System32。您如何对屏幕保护程序进行编程,以便它可以找到“自身的其余部分”?你会使用windows注册表吗?或者在 scr 文件旁边创建某种配置文件以及其余文件的路径?你会让 scr 成为应用程序文件夹中 exe 的启动器吗?或者这是一个坏主意?

  2. 我还希望屏幕保护程序能够从 Internet 上的某些地方下载新内容。但是我把它放在哪里,屏幕保护程序如何找到它?如果我理解正确,应用程序不是在其应用程序文件夹中创建新内容,而是在用户文件夹中。我如何找到那个文件夹?你是从环境变量构建的吗?像这样的东西真正应该在哪个特定目录中?例如,在 Vista 上,我看到您有一个名为C:\ProgramData的文件夹。您还有C:\Users\username\AppData\LocalC:\Users\username\AppData\LocalLowC:\Users\username\AppData\Roaming. 还看到很多程序在我的文档文件夹中转储东西(尽管我讨厌程序弄乱我的文档文件夹,所以我可能会尽量避免这种情况:p)。

当涉及到在文件系统中布置应用程序的这些问题时,有哪些最佳实践?我希望它对于 Windows 7 来说是最好的和“最正确的”,这意味着它可能在 Vista 中也可以工作(?),但它也需要在 XP 中工作,因为很多人都在使用它仍然。

4

3 回答 3

1

我还在用 XP :)

System.Environment.SpecialFolders 是这些特殊位置所需的。

说,

System.Environment.SpecialFolder.LocalApplicationData
于 2009-08-17T11:38:01.270 回答
0

对于屏幕保护程序,我会尝试将大部分内容放在 .exe (.scr) 文件中。它可能会使可执行文件很大,但我认为这是值得的。

对于下载的内容,使用应用程序数据文件夹,或者允许用户设置位置(将路径放在注册表中)。例如,如果您正在下载图像,用户可能希望将其放在“我的图片”文件夹中。

于 2009-08-17T15:54:29.240 回答
0

您可以将其放在 System32(或 SysWOW64)文件夹中,但您也可以将其仅放在 Windows 文件夹中,这样可以防止 x86 与 x64 问题。

您可以在此处找到一些其他难以找到但有关编写屏幕保护程序的重要信息: https ://github.com/steveniles/MandelZoom/wiki

(披露:我写了上面的 wiki 作为我自己的一个屏幕保护程序的源代码的伴侣。)

于 2012-12-06T21:11:23.423 回答