我正在制作GTA修改的安装程序。当用户执行。exe时,它在显示任何GUI之前所做的第一件事就是搜索GTA-SA.exe所在的位置。
我写了常见的安装位置:
# Most common directories where GTA SA can be found
# Default installation directory from GTA SA setup
!define DEFAULT_DIR "$PROGRAMFILESRockstar GamesGTA San Andreas"
# Default installation directory from Steam version
!define STEAM_DIR "$PROGRAMFILESSteamsteamappscommonGrand Theft Auto San Andreas"
!define OTHER_DIR_STEAM "D:SteamLibrarysteamappscommonGrand Theft Auto San Andrea"
# MixMods recommend users to install their GTA SA folder into Documents
!define MIXMODS_DIR "$DOCUMENTS"
这是我的定位函数在。oninit代码:
# Makes a search into the most common GTA installation folders to
# check where the GTA_SA.exe (or gta-sa.exe) is located
${locate::Open} "${STEAM_DIR}|${MIXMODS_DIR}|C:|$PROGRAMFILES|${OTHER_DIR_STEAM}|D:" `
/F=1
/D=0
/M=gta?sa.exe
/A=-HIDDEN|-SYSTEM
/-PN=Temp|WINDOWS` $0
搜索C: drive会给用户带来问题吗(特别是在慢速硬盘中)?如果是这样,进行此搜索的最佳实践是什么?
我想我明白你的意思了。
你首先要检查GTA是否安装了,然后你想要得到它安装的确切目录。
检查Steam注册表项对你不起作用,因为它也可以从另一个平台安装。
如果我是你,我会检查这个注册表目录:"微软HKEY_LOCAL_MACHINE SOFTWARE Windows CurrentVersion Uninstall"。
所有可以卸载的程序都位于这里,其中应该包括GTA,即使它是使用其他平台而不是Steam安装的。
你可以在GTA注册表中找到游戏的安装路径。
想了解更多信息,我建议你看看这篇文章。
如果我能帮你解决这个问题,请告诉我。