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, и другие) »
|
Учебник по Паскалю и вечер-два помогут понять, как оно работает, тут совсем базовые вещи используются.