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

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

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


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

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


Дано:
Установленная программа не оставившая в записей в реестре. Дополнительное строннее ПО для программы работающее только с определенной версией программы.
Условие:
Версия программы содержится в ее исполняемом файле.
Необходимо:
Инсталлятор должен не просто устанавливать стороннее ПО в папку программы (это-то просто), а определить версию программы по версии ее исполняемого файла и установить ПО только если версия подходит, иначе вывести сообщение о необходимости сначала обновить версию программы до необходимой.

Возможно ли в NSIS осуществить проверку версии программы по ее *.exe файлу, и если возможно, то как?

---------------------------------------------
Уже понял, что возможно:

GetDllVersion "$INSTDIR\XXX.exe" $R0 $R1
IntOp $R2 $R0 / 0x00010000
IntOp $R3 $R0 & 0x0000FFFF
IntOp $R4 $R1 / 0x00010000
IntOp $R5 $R1 & 0x0000FFFF
StrCpy $R1 "$R2.$R3.$R4.$R5"

После чего в $R1 получаем версию.

Но я не пойму как это использовать, надо ведь задать переменные и провести сравнение, как это будет в коде выглядеть?
И еще допустим версии много, но нужно разрешить установку не на одной конкретной версии, а на нескольких конкретных, т.е. например программа может быть версии от 1.00 до 1.32, а инсталлятор должен разрешать установку только на версии 1.25, 1.27, и 1.31.
Я так понимаю, что тут просто проверка должна проходить несколько раз, как это описать в коде?

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


Отправлено: 12:42, 20-08-2011 | #1497