Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата 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

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 20-08-2011 в 19:09.


Отправлено: 18:21, 20-08-2011 | #1503