我有一个用 Delphi 2006 编写的应用程序,它在 Windows XP 中运行良好。我使用 Inno Setup 打包应用程序,并使用 Program Files 作为默认文件夹。一些用户迁移到 Windows Vista 和 Windows 7。这里的问题是应用程序在其安装文件夹中自行创建一些文件。这在 XP 中有效,但在 Windows Vista 中,用户在创建文件时遇到问题(它们不显示等等)。在调查用户的报告后我发现知识库 927387:“Windows Vista 或 Windows 7 中的常见文件和注册表虚拟化问题。”
使用管理员权限运行应用程序只能解决问题,但(我认为)这是一个糟糕的解决方法。我想知道是否有任何指令或提示可以使应用程序与 Vista 和 7 兼容,因为很快就会有更多用户迁移到这些操作系统。
您需要重新编写应用程序以将其文件存储在正确的位置,即使在 XP 中也是如此,但尤其是在 Vista 及更高版本中,特别是在启用了 UAC 的情况下。随着微软不断锁定并在每个新操作系统版本中强制执行其安全模型,做到这一点变得越来越重要。 MSDN 上记录了如何正确管理应用程序和用户相关文件的规则,例如:“Microsoft Windows 2000 桌面应用程序的应用程序规范,第 4 章:数据和设置管理” and “Microsoft Windows 2000 桌面应用程序的应用程序规范附录 A:最佳实践”(是的,它们很旧,但仍然非常相关)。查看 SHGetSpecialFolderLocation()、SHGetFolderPath()、SHGetKnownFolderPath() 和其他相关函数对您有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)