【问题标题】:C#: How would you organize a screen saver in the file system?C#:您将如何在文件系统中组织屏幕保护程序?
【发布时间】:2009-08-17 11:34:20
【问题描述】:

我打算创建一个屏幕保护程序。也在考虑尝试一些 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 \漫游。还看到很多程序在我的文档文件夹中转储东西(虽然我讨厌程序弄乱我的文档文件夹,所以我可能会尽量避免这种情况:p)。

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

【问题讨论】:

    标签: c# installation filesystems screensaver


    【解决方案1】:

    我还在用 XP :)

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

    说,

    System.Environment.SpecialFolder.LocalApplicationData
    

    【讨论】:

    • 你会添加什么? “MyScreenSaver”或类似的东西?那么申请路径呢?特别是因为这是用户在安装过程中应该能够选择的东西。
    • “应用程序路径”是什么意思?如前所述,屏幕保护程序必须位于特定位置,因此没有选项。我不确定,但我怀疑使用“LocalApplicationData”你不需要添加你的应用程序的名称。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2010-09-21
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-29
        相关资源
        最近更新 更多