Цитата Paval:
Нужно сравнить версии программы на компе и той, что я ставлю. Если у пользователя версия новее - просот обрубаем инсталятор, если новее моя - удаляем старую и ставим мою »
|
Сначала нужно получить версию программы, откуда получить?
1. Из реестра, текстового файла...
2. Из исполняемого файла программы, макросом GetFileVersion (FileFunc.nsh)
3. Затем сравниваем полученную версию программы и исходно устанавливаемую.
Код:
!include "WordFunc.nsh"
!define version "1.1.3" ;исходно устанавлимая версия
;--
Section
;команды получения установленной версии
;к примеру мы получили версию в $1
StrCpy $1 "1.1.0"
${VersionCompare} "$1" "${version}" $0
${If} $0 == 0
MessageBox MB_OK "версии равны"
${ElseIf} $0 == 1
MessageBox MB_OK "исходная версия, меньше полученной"
${ElseIf} $0 == 2
MessageBox MB_OK "исходная версия, больше полученной"
${EndIf}
SectionEnd
Цитата Paval:
P.S. В скрипт версию хардкодить нельзя. »
|
здесь обсуждаются только скрипты NSIS, я правильно понял или мне телепатом становится
1. У вас есть некий установщик проги, назовем его Х, а скрипта нет.
2. Вы хотите написать скрипт, который заводит/отменяет установку X в зависимости от ваших условий.
Цитата wolkow70:
Мы же не ищем легких путей »
|
Зачем делать то, что можно делать ключами проги: легко и просто....смысла нет огород 0городить
Цитата kotkovets:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{1F77B17B-F531-44DB-ACA4-76ABB5010A28}\InprocServer32]
@="C:\\AIMP3\\Modules\\aimp_menu32.dll" »
|
при первом GetParent будет -->
C:\AIMP3\Modules
при втором GetParent будет -->
C:\AIMP3 , и затем нужно удалить папку проги
Код:
ReadRegStr $4 HKLM "SOFTWARE\Classes\CLSID\{0041494D-5033-4472-6F70-546172676574}\LocalServer32" ""
${GetParent} "$4" "$4"
${GetParent} "$4" "$4"
RMDir /r "$4"
;--
StrCpy $4 "C:\AIMP3\Modules\aimp_menu32.dll"
${GetParent} "$4" "$4"
MessageBox MB_OK "$4" IDOK
${GetParent} "$4" "$4"
MessageBox MB_OK "$4" IDOK