Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]
habib2302
24-12-2016, 21:49
Bio_Hazard, нужна inno setup ultra т.к. на стандартной версии не работает
Bio_Hazard
24-12-2016, 22:11
habib2302, поставил inno setup ultra 5.5.1, дает такую (http://i87.fastpic.ru/big/2016/1224/43/19a24af81dbf5ab6b82ee7c8016af143.png)ошибку при компиляции.
Bio_Hazard, предыдущую строку закончи символом ";"
Потому, что UNICODE версия менее терпима к огрехам, чем ANSI.
habib2302
24-12-2016, 23:16
Потому, что UNICODE версия менее терпима к огрехам, чем ANSI. »
:yes:
Bio_Hazard,
Поэтому ставьте ANSI версию
RADEON73
28-12-2016, 09:49
Блин тупой вопрос вроде, а не дойду никак...
[RUN]
Filename: "{cmd}"; Parameters: "/c" "REG DELETE HKCU\Software\ПУТЬ С ПРОБЕЛАМИ"
Не работает, естественно первое решение взять путь в кавычки...
Filename: "{cmd}"; Parameters: "/c" "REG DELETE "HKCU\Software\ПУТЬ С ПРОБЕЛАМИ""
Но так тоже не работает он путается в параметрах...как реализовать попроще задумку но без использования сторонних файлов типа .bat .cmd хочу прямо в коде ISS обрабатывать, желательно без использования секции [CODE]
Dodakaedr
28-12-2016, 10:22
RADEON73, Filename: "{cmd}"; Parameters: "/c REG DELETE ""HKCU\Software\ПУТЬ С ПРОБЕЛАМИ"""
В справку заглядывали? Там все это есть.
RADEON73
28-12-2016, 12:37
Dodakaedr, Блин, тупо!!! Я его первым делом пробовал, не получилось, видимо где-то не уследил за знаками...
как реализовать попроще задумку но без использования сторонних файлов типа .bat .cmd хочу прямо в коде ISS обрабатывать »
Вам нужно удалить ключ перед инсталляцией?
[Registry]
Root: HKCU; SubKey: Software\Bla Bla Bla; ValueType: none; Flags: deletekey
Если нужно еще и после деинсталляции удалить, тогда добавьте флаг uninsdeletekey.
RADEON73
28-12-2016, 13:25
boss911, да уже сообразил что RUN выполняется после Registry, так пробовал сразу но почему то не удаляет, хотя должен...не пойму почему...когда на значение указываешь работает, а вот когда на каталог нет...
Использовал пока вот такой BEFOREINSTALL костыль, по условию установки чекбокса, но все равно хочу разобраться нет ли способа проще...
procedure DELETEREGKEY ;
begin
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Bla Bla Bla')
end;
С Новым Годом! Ура! Счастья всем!
R.i.m.s.k.y.
03-01-2017, 18:26
подскажите, пожалуйста, как в винде х64 внести параметр в в реестр HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
по-умолчанию установщик фунциклирует в х86 режиме и ключи записываются в HKLM\Software\wow6432node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers и естественно не работает как надо
Узнал чтоименно надо без \wow6432node\ по регшоту и проверке руками этого ключа реестра
ставить в setup
ArchitecturesAllowed=x64, x86
ArchitecturesInstallIn64BitMode=x64
не очень хочется тк установщик ставит запускает на установку дирекс9, вкредист 2013 х86 и немножко кодеков х86, есть сомнения что в винде х64 все полетит не в ту секцию тк в справке написано
If your application's binaries are all 32-bit and run in user mode, you should not change this directive from its default value (specifically, don't set it to x86), because normally such binaries will run without issue on the x64 and Itanium editions of Windows via the WOW64 emulator.
Прога в установщике х86, вот как записать в HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, минуя WOW64emulator?
как записать в HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, минуя WOW64emulator? »
[Registry]
Root: HKLM64; SubKey: Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; ValueType: none; ValueName: ; ValueData: ; Check: IsWin64
Root: HKLM; SubKey: Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; ValueType: none; ValueName: ; ValueData: ; Check: NOT IsWin64
R.i.m.s.k.y.
03-01-2017, 19:06
точно! забыл уже как делал это! склероз мне изменяет! :D
Nightwishh
06-01-2017, 18:18
Всем Здрасте!!! Хочу спросить можно ли изменить цвет шрифта (не используя скина), что бы он был одного цвета во всех окошках и меседж боксах
R.i.m.s.k.y.
12-01-2017, 12:27
подскажите, пожалуйста, как на FinishedPage делать неснимаемыми галочки на элементах, создаваемых стандартными строчками в секции Run
делаю так, ошибки при компиляции и при выполнении не возникает но галка снимается и ставится, элемент рабочий
If CurPageID=wpFinished then begin
RunSetup := WizardForm.RunList.Items.IndexOf(ExpandConstant('{cm:RunSetup}'));
readme := WizardForm.RunList.Items.IndexOf(ExpandConstant('{cm:readme}'));
if (readme + runsetup >= 0) then begin
WizardForm.RunList.ItemEnabled[readme]:=False; WizardForm.RunList.Checked[readme]:=True;
WizardForm.RunList.ItemEnabled[runsetup]:=False; WizardForm.RunList.Checked[runsetup]:=True;
end;
end;
R.i.m.s.k.y.,
А чекбоксы RunSetup, readme как созданы можно посмотреть?
Вам нужно чтобы чекбоксы, что прописаны стандартно в секции [Run] были отмечены, но не активны?
Dodakaedr
13-01-2017, 07:53
R.i.m.s.k.y., так сойдет?procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
WizardForm.RunList.ItemEnabled[0] := false; //допустим это runsetup
WizardForm.RunList.ItemEnabled[1] := false; //а это readme
end;
end;
El Sanchez
13-01-2017, 09:13
подскажите, пожалуйста, как на FinishedPage делать неснимаемыми галочки на элементах, создаваемых стандартными строчками в секции Run »
R.i.m.s.k.y., раз выбора у пользователя нет, то смысл в выводе галок? Удалить строку с readme (с флагом isreadme) из [Files] и использовать директиву InfoAfterFile в [Setup], в [Run] в строке с runsetup удалить флаг postinstall
При запуске инсталятора от имени админа, все файлы устанавливаются в папки админа, а не пользователя, вошедшего в систему.
Как сделать, чтобы установка производилась с правами админа, но в папки текущего (т.е. вошедшего в систему) юзера?
R.i.m.s.k.y.
13-01-2017, 13:39
Вам нужно чтобы чекбоксы, что прописаны стандартно в секции [Run] были отмечены, но не активны? »
да
уже сделал
ошибка была в if (readme + runsetup >= 0), один элемент не создавался и имел индекс -1 (была проверка Check: (if fileexist...), второй создавался с индексом 0 и сумма была -1
Всем дзинкуе за внимание!
Удалить строку с readme (с флагом isreadme) из [Files] и использовать директиву InfoAfterFile в [Setup], в [Run] в строке с runsetup удалить флаг postinstall »
да так и было без флага postinstall, но мне это не нравиццо тк хорошо бы проинформировать пользователя что по окончании будет запущено вот это (натсройки и ридми как запускать) и пользователь не мог снять галки
Как сделать, чтобы установка производилась с правами админа, но в папки текущего (т.е. вошедшего в систему) юзера? »
сперва почитать про current user и original user
потом сформулировать вопрос правильно, а я пока поищу у себя, когда-то давным давно я так делал :D
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC