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

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

Новый участник


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

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


Цитата K.A.V.:
Можете просто менять значение переменной $INSTDIR при запуске инсталлятора
Вот, например, таким способом...
Читаем значение из первой ветки (типа 32 бит система) и, если в параметре путь в папку программы и есть файл "проверка файла.exe" в директории, то назначаем переменной $INSTDIR значение ключа реестра
Если файл не существует, читаем из другой ветки в реестре (типа 64 бит система) и по той же схеме
А если при чтении из второго ключа программа установки не найдёт указанный вами файл, то будет ошибка установки (можете сами убрать потом)
Код:
Function .onInit
ReadRegStr $0 HKLM "Software\32 bit TEST" "TEST"
IfFileExists "$0\проверка файла.exe" 0 +3
StrCpy $INSTDIR $0
goto ok
ReadRegStr $0 HKLM "Software\64 bit TEST" "TEST"
IfFileExists "$0\проверка файла.exe" 0 +3
StrCpy $INSTDIR $0
goto ok
MessageBox MB_OK|MB_ICONSTOP "Программа не установлена"
quit
ok:
FunctionEnd »
а что сделать чтобы не кошко с ошибкой выскакивало а просто задавался какой-нибудь стандартный путь, это например надо в случае если програ портативная, т.е. не устанавливалась?

Отправлено: 23:12, 01-02-2013 | #171