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

Название темы: Inno Setup. Прочие вопросы
Показать сообщение отдельно

Пользователь


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

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


iglezz Немножко уменьшил код, и добавил функцию проверки максимальной версии, на которую можна установить свой апдейт, мож кому пригодится. Работает з доп. модулем и подключением через функцыю #include тыць
Файл FileVersion.iss (разместить рядом с основным скриптом), и в скрипте подключить етот файл #include "FileVersion.iss"
Вот сам скрипт
Code

#include "FileVersion.iss"

[code]
function InitializeSetup(): Boolean;
var FileName: String; CurrentVersion, MinVersion: TFileVersion; begin

// Задаём минимальную требуемую версию:
FileVersionSetI(MinVersion, 1,3,0,0);

FileName := ExpandConstant('{reg:HKLM\SOFTWARE\Test,PATH_APPLICATION}') +'\Test.exe';

if Not FileExists(FileName) then begin
MsgBox('Установка Прекращена:' #13#13 'Файл ('+ExtractFileName(FileName)+') не найден!', mbCriticalError, MB_OK);
Result := False; Exit;
end;

FileVersionSetF(CurrentVersion, FileName);

if FileVersionCompare(CurrentVersion, MinVersion) > -1 then
Result := True
else begin
MsgBox ('Установка Прекращена:' #13#13 'Версия Установленной Программы: ' +FileVersionToStr(CurrentVersion) +#13#13 'Нужна Минимум: ' +FileVersionToStr(MinVersion), mbCriticalError, MB_OK);
Result := False; Exit;
end;

// Задаём Максимальную требуемую версию:
FileVersionSetI(MinVersion, 1,3,0,0);

FileName := ExpandConstant('{reg:HKLM\SOFTWARE\Test,PATH_APPLICATION}') +'\Test.exe';

FileVersionSetF(CurrentVersion, FileName);

if FileVersionCompare(CurrentVersion, MinVersion) < 1 then
Result := True
else begin
MsgBox('Установка Прекращена:' #13#13 'Версия Установленной Программы: ' +FileVersionToStr(CurrentVersion) +#13#13 'Нужна Максимум: ' +FileVersionToStr(MinVersion), mbCriticalError, MB_OK);
Result := False; Exit;
end;
end;


Счас назрел новый вопрос, я правда еще мало интересовался им, но навсяк спрошу мож кто знает ответ, перед установкой нуна сверить хешсумму SHA-1 установленного уже файла Test.exe, с хеш устанавлимоего мною файла Test.exe (я могу и зарания вбить значение хеш SHA-1 устанавлимоего Test.exe для проверки), и в случае 1=1 вывести сообщение Програма уже установлена Хотите установить (ДА\НЕТ)

Чот сочинил но пока безрезультатно
Code

function GetSHA1OfUnicodeString(const S: String): String;
var
SHA1: String;
begin
SHA1 := GetSHA1OfUnicodeString('reg:HKLM\SOFTWARE\Code,PATH_APPLICATION}\Test.exe');
if SHA1 = '9ab696a37604d665dc97134dbee44cfe70451b1a' then
begin
end
else
MsgBox('программа уже установлена' #13#13 'продлить установку', mbCriticalError, MB_YESNO);
Result:= False;
end;
end;

Последний раз редактировалось Beavimo, 09-01-2020 в 22:49.


Отправлено: 15:59, 09-01-2020 | #593

Название темы: Inno Setup. Прочие вопросы