windows - 如何使我的程序在 Windows Vista 和 Windows 7 中运行?

标签 windows delphi windows-7 windows-vista

我有一个用 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/

相关文章:

c++ - 在 Windows 中创建和移动超过 260 个字符的路径名的程序

delphi - 将位图转换为 RTF 后,图像在 ms word 中不显示(但在写字板中显示)

delphi - 是否可以将FileAge设置为毫秒?

c# - PostMessage 在 Windows 7 x64 中不起作用

linux - 在 Windows 上运行虚拟机

Python 没有找到 System32

python - 我可以使用 PIL 以全屏模式显示图像吗?

delphi - 根据任意格式将字符串转换为 TDateTime

sqlite - 适用于 Windows 7 64 位的 DLL 文件

c++ - 将文件放在 Visual Studio 2015 的控制台命令行中