所以我之前问了一个同名的问题,得到的答案大部分都有效。我现在的问题是 Win32 资源文件中的字符串表在 Windows Server 2003 上不起作用(也许其他人也是如此,此时有限的 O/S 测试)。
测试结果:
正确显示:
- 视窗
- 视窗
- Windows 7的
无法正确显示:
- 视窗 2000 专业版
- 视窗服务器 2003
我知道我的第一个问题的答案中提供的解决方案在 Windows XP 和 Vista 中按预期工作,但在 Windows Server 2003 上不起作用。我是否必须做一些不同的事情才能让我的“友好”屏幕保护程序名称显示在 Windows Server 中2003 年?
我的资源文件只包含两项:
- 图标 - ID: 1
- 字符串表
- 字符串 - ID: <空>,值: 1,标题: CC.Votd
如果我回到只包含字符串表的资源文件,行为是相同的。
编辑:我尝试添加另一个字符串:
- 字符串 - ID: <空>,值: 100,标题: CC.Votd
正如我在其他屏幕保护程序中看到的那样,在 Windows Server 2003 中显示正确名称但没有任何改变。这很令人沮丧,因为当我使用资源浏览器浏览 Windows 附带的屏幕保护程序时,我看不到一致性。
有些指定一个值为 1 的字符串和友好名称。其他人还指定一个值为 100 的字符串。有些甚至不包含字符串表,但仍显示与可执行文件名不同的名称。
更新:我创建了一个非常基本的解决方案,展示了我如何创建和使用资源文件。如果您将 .scr 文件复制到 XP/Vista 框上的系统目录,您将在下拉菜单中看到“友好的屏幕保护程序名称”。在 Windows Server 2003 上,您将看到“So_screensaver_display_name”(不带扩展名的可执行文件名)。你可以在这里下载:http ://www.ccswe.com/temp/SO_ScreenSaver_Display_Name.zip
编辑:如果有人运行 Windows Server 2003 来编译和测试我上面的示例项目,这样我就可以确定这是否特定于我的 Windows Server 2003 机器,这也会很有帮助。
也对任何其他操作系统上的结果感兴趣,因为我只有 XP/Vista/2003 可以在本地进行测试。谢谢!
更新:我能够在不同的 Windows Server 2003 (R2) 机器上进行测试,结果是相同的。在 Windows 2000 Professional 上也显示不正确。不过可以在 Windows 7 机器上工作。
解决方案:正如接受的答案中提到的,我将文件从 重命名CC.Votd.scr
为CCVotd.scr
,现在 Windows 2000/2003CC.Votd
从我的字符串表中正确读取了描述并将其显示在下拉列表中。我仍然不明白“为什么”非 DOS 8.3 文件名导致它不使用我的描述,但至少已修复。