在C:/中使用Locate会导致问题吗?



我正在制作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注册表中找到游戏的安装路径。

想了解更多信息,我建议你看看这篇文章。

如果我能帮你解决这个问题,请告诉我。

相关内容

  • 没有找到相关文章

最新更新