我有一个用 Delphi 2006 编写的应用程序,它在 Windows XP 中运行良好。我使用 Inno Setup 打包应用程序,使用 Program Files 作为默认文件夹。一些用户迁移到 Windows Vista 和 Windows 7。这里的问题是应用程序自己在其安装文件夹中创建了一些文件。这在 XP 中有效,但在 Windows Vista 中,用户在创建文件时遇到问题(它们没有出现等等)。在调查了用户的报告后,我发现了 KB 927387 : “Windows Vista 或 Windows 7 中的常见文件和注册表虚拟化问题。”
以管理员权限运行应用程序可以解决问题,但(我认为)这是一个糟糕的解决方法。我想知道是否有任何指令或提示可以使应用程序与 Vista 和 7 兼容,因为很快会有更多用户迁移到这些操作系统。
最佳答案
您需要重新编写您的应用程序以将其文件存储在正确的位置,即使在 XP 中也是如此,但尤其是在 Vista 之后的版本中,尤其是在启用了 UAC 的情况下。随着微软不断锁定并在每个新操作系统版本中强制执行其安全模型,这一点变得越来越重要。有关如何正确管理应用程序和用户相关文件的规则记录在 MSDN 上,例如:"Application Specification for Microsoft Windows 2000 for Desktop Applications, Chapter 4: Data and Settings Management"和 "Application Specification for Microsoft Windows 2000 for Desktop Applications Appendix A: Best Practices" (是的,它们很旧,但仍然很相关)。查看SHGetSpecialFolderLocation()、SHGetFolderPath()、SHGetKnownFolderPath()等相关函数对你有帮助。
关于windows - 如何使我的程序在 Windows Vista 和 Windows 7 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002546/