Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 9]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

habib2302
13-12-2019, 15:38
web_form, В module\cancel form.iss чуть ниже 160 строки есть строки Left и Top отвечающие за координаты этого текста
Если хотите отцентровать добавьте Alignment := taCenter; над строкой left

habib2302
13-12-2019, 18:03
web_form, 160 строка №8 не 18, а 8

habib2302
13-12-2019, 20:09
web_form, держите https://drive.google.com/file/d/1A5JjK-x1-B9HldjI13bdg69DyT4G01Fc
количество задач меняется в параметре #define TaskCheckBox.

habib2302
15-12-2019, 10:50
web_form, Будьте добры загружайте скрины через данную прогу (http://zenden2k.com/ru/imageuploader) с миниатюрами
https://b.radikal.ru/b12/1912/12/1938192775e9.png (https://c.radikal.ru/c04/1912/17/83c00ba8cf24.jpg)
По поводу миниатюры в панели задач есть библиотека WinTB, но проблема в том, что данная библиотека не работает на десятке
Хотя вот нашел. https://drive.google.com/file/d/1GmIrc-BFv4tqACbEoCfwDcsd73KLr33x

habib2302
15-12-2019, 12:12
web_form, в example.iss удалите раздел [setup] и все что в нем прописано. В main.iss над разделом setup с новой строки пропишите #include "example.iss". Файлы будут прописаны в example. И в конце example.iss не забудьте раскомментировать последние строки. А файл source.cpp вам не нужен т.к это исходник

habib2302
15-12-2019, 13:38
web_form, можно ваш скрипт с которым вы работайте

habib2302
15-12-2019, 19:10
web_form, проблема в том, что там придется перебирать и адаптировать скрипты под новый wintb т.к там изначально стоит старый

Tiarn
20-12-2019, 00:16
Здравствуйте!
Не распаковывается 7zip архив, если в пути есть пробелы. Подскажите пожалуйста как исправить.

[Run]
Filename: {app}\7z.exe; Parameters: "x {src}\data1.7z-y"

iglezz
20-12-2019, 00:58
Tiarn, Пути с пробелами берутся в кавычки, а азы из документации гласят, что символ кавычкек " вставляется в строку как удвоенная кавычка "". Итого получаем Filename: {app}\7z.exe; Parameters: "x ""{src}\data1.7z-y"""

nik1967
20-12-2019, 10:59
web_form, там заморочек много. С переключением языка на лету.

habib2302
21-12-2019, 17:03
Доброе время суток. Необходимо удалить настройки проги во время деинсталляции через код с выводом MsgBox, но проблема в том, что в пути к настройкам есть символ "одинарная кавычка" или ' . Как можно обойти ошибку из-за этой кавычки? Пример Friday's program

[Code]

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
case CurUninstallStep of
usPostUninstall:
if DirExists(AddBackslash(ExpandConstant('{userappdata}')) + 'Friday's program') then
begin
if MsgBoxEx(0, 'Удалить настройки программы', 'Удаление настроек', $00000004 or $00000020, 0, 0) = IDYES then
DelTree(AddBackslash(ExpandConstant('{userappdata}')) + 'Friday's program', True, True, True);
end;
end;
end;

iglezz
21-12-2019, 18:02
habib2302, использовать "" для " и '' для ', то бишь удваивать кавычку в строке.

iglezz
11-01-2020, 00:08
выложу робочий скрипт на проверку хеш мож кому пригодится. »
На заметку:
1. По коду скрипта:
function InitializeSetup(): Boolean;
var
FileName: String;
SHA1: String;
begin
FileName := ExpandConstant('{reg:HKLM\SOFTWARE\Code,PATH_APPLICATION}') +'\Test.exe';
это присваивание не несёт полезной нагрузки:
Result := FileExists(FileName);
если файла нет по этому пути, будет ошибка (пример обработки здесь был (http://forum.oszone.net/post-2904032.html#post2904032)):
SHA1 := GetSHA1OfFile(FileName);
if SHA1 = 'ad030d5606a2dcfa75ebc425a70730f23e7f07ab' then // буквы должны быть маленькими
begin
Result := MsgBox('Программа уже Установлена' #13#13 'Продолжить Установить?', mbInformation, MB_YESNO) = IDYES;
end
выделенная зелёным часть не несёт полезной нагрузки, можно убрать:
else
begin
end
end;
2. Отступы - полезная штука для улучшения читаемости кодаю

Beavimo
11-01-2020, 01:36
iglezz
Зделал так, все работает, тока теперь при разных хеш, програма закрывается :help:


function InitializeSetup(): Boolean;
var
FileName: String;
SHA1: String;
begin
FileName := ExpandConstant('{reg:HKLM\SOFTWARE\Code,PATH_APPLICATION}') +'\Test.exe';
if Not FileExists(FileName) then begin
MsgBox('Установка Прекращена' #13#13 'Установите сначала Программу!', mbCriticalError, MB_OK);
Result := False;
Exit;
end;
SHA1 := GetSHA1OfFile(FileName);
if SHA1 = 'ad030d5606a2dcfa75ebc425a70730f23e7f07ab' then // буквы должны быть маленькими
begin
Result := MsgBox('Программа уже Установлена' #13#13 'Продолжить Установить?', mbInformation, MB_YESNO) = IDYES;
end
end;


как его побороть?

Iska
11-01-2020, 02:09
Beavimo, код оформляется тэгом «code». И уже потом его можно дополнительно обрамить тэгом «spoiler».

Nemko
11-01-2020, 15:37
Beavimo, может я не в теме, но попробуйте так:

#define NeedSHA "ad030d5606a2dcfa75ebc425a70730f23e7f07ab"

[Setup]
AppName=My Application
AppVersion=1.5
CreateAppDir=no

[*Сode]
function InitializeSetup: Boolean;
var
FileName: PAnsiChar;
begin
FileName:=ExpandConstant('{reg:HKLM\SOFTWARE\Code, PATH_APPLICATION}')+'\Test.exe';
if not FileExists(FileName) then begin
MsgBox('Установка Прекращена' #13#13 'Установите сначала Программу!', mbCriticalError, MB_OK);
Result:=False;
end else begin
if (GetSHA1OFFile(FileName) = Lowercase('{#NeedSHA}')) then Result:=MsgBox('Программа уже Установлена' #13#13 'Продолжить Установить?', mbInformation, MB_YESNO) = IDYES
else Result:=MsgBox('Программы не совпадают!', mbCriticalError, MB_OK) <> IDOK; // если надо чтоб программа запускалось при не соответствии, сменить знак на "="
end;
end;

Nordek
11-01-2020, 16:20
код оформляется тэгом «code». »В дополнение.

Iska
11-01-2020, 17:04
В дополнение (http://forum.oszone.net/post-2270836.html#post2270836). »
Nordek, завели же тэг [noparse] (http://forum.oszone.net/misc.php?do=bbcode#noparse) специально для таких случаев.

Beavimo
11-01-2020, 20:54
Nemko, спасибо, тока как убрать предупреждение о несовпадении сум, что бы сразу устанавливалась прога
else Result:=MsgBox('Программы не совпадают!', mbCriticalError, MB_OK) = IDOK; // если надо чтоб программа запускалось при не соответствии, сменить знак на "="

Nordek
11-01-2020, 21:09
Iska, https://i4.imageban.ru/thumbs/2020.01.11/9263c017f479cfb1a1400f12332fab37.png (https://i4.imageban.ru/out/2020/01/11/9263c017f479cfb1a1400f12332fab37.png)

Таким образом подставляется автоматически:
[Code]
procedure RedesignWizardForm;
begin
with WizardForm.CancelButton do
begin
Left := ScaleX(364);
end;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
end;


Итог:
[Code]
procedure RedesignWizardForm;
begin
with WizardForm.CancelButton do
begin
Left := ScaleX(364);
end;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
end;




© OSzone.net 2001-2012