我有一个 VB6 桌面应用程序,部署在 1200 多个桌面上。整个设备都是 Windows XP SP2 和 SP3 系统的混合体。除一台 PC (XP SP2) 之外的所有 PC 都能够成功破译 .ini 文件中使用的 DOS 8.3 路径(即 C:\PROGRA~1\DATFOL~1\Config\
)与此应用程序相关。这台特定的电脑出错并显示一条消息:“运行时错误'76':找不到路径”。
该字符串是使用以下命令从 .ini 文件中获取的
GetPrivateProfileString
函数。 (该字符串没有硬编码到应用程序中 - 它是从 ini 文件中获取的)。
由于只有一台机器出现问题,我希望该设备上的某些配置值是根本原因。我查看了注册表中的 NtfsDisable8dot3NameCreation 设置,看看这是否会导致问题,但在更改此设置时,我无法在任何其他计算机上重现该问题。
有人有什么想法或者我可以采取的另一个方向吗?
最佳答案
不要使用硬编码路径或短文件名。 Program Files 文件夹可能不在 C: 驱动器上,可能未命名为 Program Files,即使是,也可能没有 PROGRA~1 的短文件名(DATAFOL~1 也相同)。在安装过程中将安装路径写入 INI 文件或注册表,并在程序中读取并使用它。
关于VB6 应用程序在单台 PC 上无法进行 8.3 路径转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607324/