2010-10-15 84 views
1

我有一个只有16位安装程序的旧游戏(Westwood Monopoly CD-ROM),所以它不会在我的Windows 7 x64上运行。为了解决这个问题,我决定使用Inno Setup来创建一个新的安装程序。游戏本身是32位的,但不支持LFN,并且可以在Vista/7上运行,但是如果我用Inno Setup构建的安装程序没有在Windows 95兼容性检查下运行,游戏就会崩溃。替换16位安装程序,程序需要短文件名?

通过启用兼容模式生成的文件夹与未选中兼容性设置生成的文件夹之间没有文件或属性差异。但是,游戏只会在安装了兼容模式的文件夹中运行,游戏exe(Monopoly.exe)本身不能启用任何兼容模式选项,或者游戏在您尝试保存,加载或选择计算机ai之一时终止播放器文件。如果为未安装兼容模式而创建的文件夹中的Monopoly.exe打开兼容模式95,游戏将加载,但由于上述原因将无法播放。

我的猜测是,Windows 95设置强制创建短文件名,而没有它时,游戏无法找到它的文件,因为短文件名信息不存在。为安装程序设置兼容模式并不是理想的解决方案,因为我需要能够根据检测到的Windows版本复制不同的exe(Aero会导致部分屏幕被切断,因此我使用一个十六进制编辑的exe文件更大的默认大小)。

所以我的问题是这样的:有没有办法强制Inno安装程序创建短文件名信息,因为它复制,或有一种方式来完成后添加命令(即修复损坏的文件夹所以游戏可以找到它的文件)?

回答

1

据我所知,问题在于较新版本的Windows Installer和Windows本身不再支持使用短名称。该财产已被逐步淘汰,截至(AFIK)Vista,它已经不再使用。如果您尝试包含它们,大多数现代安装程序技术都会给您一个错误。你有没有试过看DosBox?这也可以让你运行它而不需要特殊的安装程序。

+0

游戏是针对Windows的,DosBox将无济于事。事实证明,这个问题与文件名无关,问题在于微软的应用程序兼容性数据库不一致地应用了Ignore Privileged Instruction兼容性修补程序。我甚至没有听说过这个,直到我搜索了Microsoft应用程序兼容性工具包5.6。 – user477276 2011-02-02 04:31:49

相关问题