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

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

Старожил


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

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


Beavimo, "это не шахматы,здесь думать надо" © древнючий баян

Вот рабочий пример (требует для сборки файл test.exe в папке рядом со iss-скриптом):
Скрытый текст
Код: Выделить весь код
; записываем в MySHA1 значение хеша из нужного файла на стадии компиляции
#define MySHA1 GetSHA1OfFile(SourcePath + '\test.exe')

[Setup]
AppName=testSHA1
OutputBaseFileName=testSHA1
AppVersion=0.1
DefaultDirName={tmp}\testApp
OutputDir=.
PrivilegesRequired=lowest
CreateAppDir=no

[Files]
Source: "test.exe"; DestDir: "{app}"

[code]

function InitializeSetup(): Boolean;
var
	FileName: String;
	SHA1: String;
begin
	// Берём файл в целевом каталоге:
	FileName := ExpandConstant('{src}') + '\test.exe';
	// Здесь пропущена проверка на FileExists
	// Считаем его хеш:
	SHA1 := GetSHA1OfFile(FileName);
	
	// Делаем сверку:
	if SHA1 = '{#MySHA1}' then
		MsgBox('OK!', mbInformation, MB_OK)
	else
		MsgBox('SAD :(', mbCriticalError, MB_OK);
	
	Result := False
end;

Цитата Beavimo:
я методом перебора пробую чот сочинить, а понять как оно работает не могу, ети все (if, if not, then, begin, else, var, и другие) »
Учебник по Паскалю и вечер-два помогут понять, как оно работает, тут совсем базовые вещи используются.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:49, 10-01-2020 | #596

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