不一定是谁写文件,而是他们把文件写到哪里。默认情况下,程序文件文件夹及其子文件夹对所有标准用户都是只读的。尝试改用 All Users Application Data 文件夹。
这对 VB6 来说有点棘手,因为它在设计时根本没有考虑到 Vista。一些相关文件夹被重新命名,我无法让 vb6 为您提供您想要的确切文件夹,而不是使用“Declare Function”别名直接调用 Windows API。
所以我知道找到合适位置的最简单可靠的方法是使用%ALLUSERSPROFILE%
环境变量。C:\Documents and Settings\All Users
在 XP 上默认返回“ ”,C:\ProgramData
在 Vista 上默认返回“”。从那里您可以查找“应用程序数据”文件夹。它不会存在,您在 Vista 上也不需要它,但如果它不存在,创建一个不会有任何损害。这为您在两个系统上提供了一致的文件夹结构,您可以从中创建一个子文件夹供您的应用程序用作工作空间。
最后一点:这不是 Vista 的新变化。默认情况下,Program Files 文件夹对标准用户始终是只读的。XP 的工作方式相同。只是有这么多人在 XP 中以管理员身份运行,您也许可以摆脱它。