Inno Setup. Прочие вопросы

Ответить
 • Просмотры: 40
Аватара пользователя
Beavimo

Re: Inno Setup. Прочие вопросы

Сообщение Beavimo »

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



Вот рабочий пример (требует для сборки файл test.exe в папке рядом со iss-скриптом):



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

; записываем в 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, и другие)
Inno Setup. Прочие вопросы




Учебник по Паскалю и вечер-два помогут понять, как оно работает, тут совсем базовые вещи используются.
Аватара пользователя
Beavimo

Re: Inno Setup. Прочие вопросы

Сообщение Beavimo »

iglezz, братюня ну ты и дал стране угля поборол даже такую версию 4,49,1,356..... Изображение
Аватара пользователя
Beavimo

Re: Inno Setup. Прочие вопросы

Сообщение Beavimo »

Beavimo, Отписал в личку



Дальнейшее обсуждение скриптов стоит перенести в тему
Скрипты Inno Setup. Помощь и советы [часть 9]
, а то мы что-то отвлеклись....
Аватара пользователя
iglezz

Re: Inno Setup. Прочие вопросы

Сообщение iglezz »

Beavimo,

GetSHA1OfUnicodeString служит для получения хэша строки, что и отображено в названии функции, для файла надо использовать GetSHA1OfFile
Аватара пользователя
iglezz

Re: Inno Setup. Прочие вопросы

Сообщение iglezz »

Beavimo, Это сюда -
Программирование и базы данных




Личку чистить надо, тогда будет отправляться -- лимит сообщений



Скачай и установи
http://pascalabc.net


Потом прекращаем здесь оффтопить Изображение
Аватара пользователя
iglezz

Re: Inno Setup. Прочие вопросы

Сообщение iglezz »

Цитата iglezz:



Скачай и установи
http://pascalabc.net
Inno Setup. Прочие вопросы




Именно этот — не рекомендую. Лучше зараз брать чистый FreePascal и книжку.
Аватара пользователя
Beavimo

Re: Inno Setup. Прочие вопросы

Сообщение Beavimo »

iglezz,



code

[spoiler]function InitializeSetup(): Boolean;

var

FileName: String;

SHA1: String;

begin

// Берём файл в целевом каталоге:

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

// Здесь пропущена проверка на FileExists

// Считаем его хеш:

SHA1 := GetSHA1OfFile(FileName);



// Делаем сверку:

if SHA1 = '{#MySHA1}' then

MsgBox('Программа уже Установлена.' #13#13 'Установить все равно!', mbInformation, MB_YesNo)

else

Result := False

end;[/spoiler]






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

Re: Inno Setup. Прочие вопросы

Сообщение iglezz »

iglezz, понял Изображение



iglezz,

Чот не могу отправить тебе в личку смс.

Извиняюсь а где можно тестировать ети примери, есть какаянить среда?



Скрытый текст

[spoiler]Uses crt;

Var

a,b,v,t,u,i : Integer;

begin

Writeln ('Введите первую пару чисел:');

Write ('Первое число:');

Readln (a);

Write ('Второе число:');

Readln (b);

v:=a+b;

Writeln ('Введите вторую пару чисел:');

Write ('Первое число:');

Readln (t);

Write ('Второе число:');

Readln (u);

i:=t+u;

if (v=i) then Writeln ('Они равны.');

if (v>i) then Writeln ('Сумма первой пары чисел больше суммы второй.');

if (v[/spoiler]




чтобы сразу наглядно видить результат?
Аватара пользователя
iglezz

Re: Inno Setup. Прочие вопросы

Сообщение iglezz »

Bio_Hazard,
Скрипты Inno Setup. Помощь и советы [часть 9]
- шапка - ссылки на примеры скриптов - в самом низу пара вариантов.
Ответить

Вернуться в «Автоматическая установка приложений»