Цитата silione:
Я вижу только один способ, поиск по всем локальным дискам исполняемого файла игры, при нахождении - считывание пути к нему и указание этого пути в качестве пути для установки, в случае отсутсвия пути - выбор пути вручную. Но я нигде не нахожу способов поиска пути к произвольному файлу методами NSIS »
|
В оригинальной справке введите поиск по указателю:
Locate
Задействуйте макрос
Lосаte из хидера
FileFunc.nsh, не забудьте включить хидер в тело скрипта
Код:
!include "FileFunc.nsh"
Поиск по всем локальным дискам займет наверно много времени...
И вам для начала нужно перечислить все локальные диски на компьютере.
С помощью NSIS это решаемо.
тыц
Код:
OutFile Locate.exe
!include "FileFunc.nsh"
Section
${GetDrives} "HDD" "GetDrives" ;перечисляем все HDD диски
MessageBox MB_OK "$R0" IDOK
SectionEnd
Function GetDrives
${Locate} "$9" "/L=F /M=*.exe" "Locate" ;в переменной $9 буква диска, поиск по маске *.exe
StrCmp `$R1` "файл.exe" 0 +2
Push "StopGetDrives"
Push $0
FunctionEnd
Function Locate
StrCmp `$R7` "файл.exe" 0 +4 ;если $R7 равно "файл.exe", то...
StrCpy `$R0` `$R9` ;в переменной $R0 - путь к исполняемому файлу игры
StrCpy `$R1` `$R7`
Push "StopLocate" ;останавливаем поиск
Push $0
FunctionEnd