|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Inno Setup. Прочие вопросы |
|
Inno Setup. Прочие вопросы
|
Ветеран Сообщения: 1269 |
Внимание!!! Данная тема не предназначена для обсуждения скриптов! Для этого создана отдельная тема! Скрипты Inno Setup. Помощь и советы ![]() Описание
Inno Setup - это бесплатный инсталлятор для программ Windows. Впервые появился в 1997 году, Inno Setup сегодня, конкурирует и даже превосходит многие коммерческие инсталляторы по возможностям и стабильности. Основные достоинства:
Основной бесплатный конкурент - NSIS. Последняя стабильная версия - 6.3.1 [10.06.2024]. История версий. Официальные сборки Inno Setup 6.3.1: Редакторы iss-скриптов:
Дополнительно
Справка
Русификаторы
Распаковщики/декомпиляторы инсталляторов Inno Setup
Параметры командной строки инсталлятора (ссылка) |
|
Отправлено: 00:25, 24-08-2009 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать дел
|
Последний раз редактировалось Raymans, 11-10-2019 в 14:30. Отправлено: 21:38, 10-10-2019 | #581 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать web_form, IsWin7Logo 0.9 Beta VoLT
Или через ботву https://drive.google.com/file/d/1Hzb...SXscKVNIUD1LVi Вот готовый вариант https://drive.google.com/file/d/1cCX...JlyfIGgpq3FdMu |
------- Последний раз редактировалось habib2302, 07-12-2019 в 17:01. Отправлено: 16:09, 07-12-2019 | #582 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 11:02, 09-12-2019 | #583 |
Ветеран Сообщения: 861
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 19:03, 09-12-2019 | #584 |
Пользователь Сообщения: 62
|
Профиль | Отправить PM | Цитировать Добрый день Форумчане! Есть вопрос, на который ни как не могу найти ответ...
Некая программа при установке создает в реестре путь к исполняемому файлу Test.ехе При выходе обновления, приведенный ниже скрипт проверят существует ли даний путь в реестре, и наличие по даному пути файла Test.ехе Если путь и файл существуют программа устанавивает обновление, в противном случае видает сообщение (Установка Прекращена, Test.ехе не найден) Сам Test.ехе имеет версию файла 1.3, так вот собствинно вопрос - как при обновлении проверить версию файла Test.ехе, и в случае если версия файла Test.ехе ниже 1.3, прекратить установку виводя собщение. code
function InitializeSetup(): Boolean; begin if FileExists(ExpandConstant('{reg:HKLM\SOFTWARE\Test,PATH_APPLICATION}\Test.exe')) then begin Result:= True; end else begin MsgBox('Установка Прекращена, Test.ехе не найден', mbCriticalError, MB_OK); Result:= False; end; end; Знаю что это реально cделать не прибегая к стороннему софту, пробую писать код полагаясь на примеры найденные в интернете, и читая мануал но никак. Не хватает квалификации... ![]() Зарания Благодарю. |
Последний раз редактировалось Beavimo, 07-01-2020 в 12:06. Отправлено: 11:37, 07-01-2020 | #585 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Beavimo,
Немножко многословно получилось...
[Setup] AppName=testApp AppVersion=0.1 DisableWelcomePage=yes DefaultDirName={tmp}\testApp OutputDir=. OutputBaseFilename=testApp PrivilegesRequired=lowest [code] type TFileVer = array[1..4] of Integer; procedure CutVerNumber(var S: String; var N: Integer); var position: Integer; begin position := Pos('.', S); if position > 0 then begin N := StrToInt(Copy(S, 1, position - 1)); S := Copy(S, position + 1, 99); end else begin N := StrToInt(S); S := ''; end; end; function TFileVerToString(V: TFileVer): String; var i: Integer; begin Result := IntToStr(V[1]); for i := 2 to 4 do Result := Result + '.' + IntToStr(V[i]); end; function StringToTFileVer(S: String): TFileVer; var i: Integer; V: TFileVer; begin for i := 1 to 4 do CutVerNumber(S, V[i]); Result := V; end; function IsNotLowerVersion(currentVersion, compareVersion: TFileVer): Boolean; var i: Integer; begin Result := False; for i := 1 to 4 do if currentVersion[i] < compareVersion[i] then Exit; Result := True; end; function InitializeSetup(): Boolean; var fileName: String; versionString: String; minVersion: TFileVer; currentVersion: TFileVer; begin // Имя файла: fileName := ExpandConstant('{reg:HKLM\SOFTWARE\Test,PATH_APPLICATION}\Test.exe'); // Требуемая версия (1.3.0.0): minVersion[1] := 1; minVersion[2] := 3; minVersion[3] := 0; minVersion[4] := 0; if Not FileExists(fileName) then begin MsgBox('Установка Прекращена:'#13#13 + 'Файл `' + ExtractFileName(fileName) + '` не найден', mbCriticalError, MB_OK); Result := False; Exit; end; GetVersionNumbersString(fileName, versionString); currentVersion := StringToTFileVer(versionString); if IsNotLowerVersion(currentVersion, minVersion) then Result := True else begin MsgBox('Установка Прекращена:' \ + #13#13'Версия файла `' + ExtractFileName(fileName) + '`: ' + TFileVerToString(currentVersion) \ + #13#13'Требуется версия как минимум: ' + TFileVerToString(minVersion) \ , mbCriticalError, MB_OK); Result := False; end; end; add: Улучшенная версия на следующей странице |
Последний раз редактировалось iglezz, 08-01-2020 в 18:04. Причина: узнал про тег noparse :) Отправлено: 18:53, 07-01-2020 | #586 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата iglezz:
|
|
Отправлено: 20:27, 07-01-2020 | #587 |
![]() Ветеран Сообщения: 858
|
Профиль | Отправить PM | Цитировать Цитата Beavimo:
Скрытый текст
[Setup] AppName=My Application AppVersion=1.5 DefaultDirName={pf}\My Application [Code] function CompareVersion(s1, s2: string): integer; var iVer1, iVer2, iVer3, iVer4, cVer1, cVer2, cVer3, cVer4, tmp: string; begin Result := -1; iVer1 := Copy(s1, 0, Pos('.', s1)-1); tmp := Copy(s1, Pos(iVer1, s1)+Length(iVer1)+1, Length(s1)); iVer2 := Copy(tmp, 0, Pos('.', tmp)-1); tmp := Copy(s1, Pos(iVer2, s1)+Length(iVer2)+1, Length(s1)); iVer3 := Copy(tmp, 0, Pos('.', tmp)-1); iVer4 := Copy(s1, Pos(iVer3, s1)+Length(iVer3)+1, Length(s1)); cVer1 := Copy(s2, 0, Pos('.', s2)-1); tmp := Copy(s2, Pos(cVer1, s2)+Length(cVer1)+1, Length(s2)); cVer2 := Copy(tmp, 0, Pos('.', tmp)-1); tmp := Copy(s2, Pos(cVer2, s2)+Length(cVer2)+1, Length(s2)); cVer3 := Copy(tmp, 0, Pos('.', tmp)-1); cVer4 := Copy(s2, Pos(cVer3, s2)+Length(cVer3)+1, Length(s2)); if (StrToInt(iVer1) > StrToInt(cVer1)) then Result := 1 else if (StrToInt(iVer1) = StrToInt(cVer1)) then if (StrToInt(iVer2) > StrToInt(cVer2)) then Result := 1 else if (StrToInt(iVer2) = StrToInt(cVer2)) then if (StrToInt(iVer3) > StrToInt(cVer3)) then Result := 1 else if (StrToInt(iVer3) = StrToInt(cVer3)) then if (StrToInt(iVer4) > StrToInt(cVer4)) then Result := 1 else if (StrToInt(iVer1) = StrToInt(cVer1)) then if (StrToInt(iVer2) = StrToInt(cVer2)) then if (StrToInt(iVer3) = StrToInt(cVer3)) then if (StrToInt(iVer4) = StrToInt(cVer4)) then Result := 0; end; function InitializeSetup(): Boolean; var sFile, sVer: string; begin sFile := ExpandConstant('{reg:HKLM\SOFTWARE\Test,PATH_APPLICATION}\Test.exe'); Result := FileExists(sFile); if not result then MsgBox('Установка прекращена, Test.ехе не найден', mbCriticalError, MB_OK) else begin GetVersionNumbersString(sFile, sVer); if CompareVersion(sVer, '1.3.0.0') > 0 then Result := True else begin MsgBox('Установка прекращена, не соответствует версия', mbCriticalError, MB_OK); Result := False; end; end; end; |
|
------- Последний раз редактировалось Dodakaedr, 08-01-2020 в 20:49. Причина: Обновил функцию CompareVersion. Теперь проверяет всю версию. Отправлено: 21:01, 07-01-2020 | #588 |
Пользователь Сообщения: 62
|
Профиль | Отправить PM | Цитировать iglezz, cпасибо что откликнулся
![]() ![]() |
Последний раз редактировалось Beavimo, 08-01-2020 в 08:46. Отправлено: 08:39, 08-01-2020 | #589 |
Пользователь Сообщения: 62
|
Профиль | Отправить PM | Цитировать Код от iglezz прекрасно отрабатывает первые три значения версии. Я пока ковыряю код дабы упростить его, если че получится выложу сюда.... Но у меня есть еще один вопрос, думаю что без стороннего софто зделать не реально, но спрошу у вас знатоков.... Когда компилируется файл.exe, в его описании всегда в конце приписка Setup, можна както от нее избавится, или написать чот своё?
|
Отправлено: 10:31, 08-01-2020 | #590 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Утилиты - [addon] Inno Setup | CrOsP | Наборы обновлений для Windows XP/2003/Windows 7 | 33 | 11-05-2011 16:03 | |
Inno Setup 5.3.6 | OSZone Software | Новости программного обеспечения | 0 | 15-11-2009 17:30 | |
[архив] Inno Setup .:[все вопросы]:. | Mchik | Автоматическая установка приложений | 1329 | 23-08-2009 20:13 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|