Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 7]

Аватара для El Sanchez

Ветеран


Contributor


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


Конфигурация

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]

Отправлено: 11:48, 10-03-2014

 

SHVtYW4=


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

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


Цитата Stealthmax:
Установщик родной Sandboxie отнюдь не Inno, а NSIS. »
Если родной установщик от NSIS, то какие могут быть претензии к Inno?
Цитата Stealthmax:
Добавляю только параметр /S и ноу проблем-с, тихое удаление. »
У NSIS "/S" и в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall есть такое как Sandboxie, но к Inno это отношения вообще не имеет.
У Inno "/SILENT" а в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall к Sandboxie дописывается хвост "_is1".

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Отправлено: 15:15, 18-04-2014 | #461



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата Stealthmax:
Извлекаем параметр в интерпретатор командной строки, и получаем требуемый результат. Другого способа не нашел. »
Stealthmax, разделить полученную из реестра строку на путь к программе и параметры можно так:
читать дальше »

Код: Выделить весь код
#define A = (Defined UNICODE) ? "W" : "A"
type
  CMDLINE = record    // user defined
    szProg: String;
    szParams: String;
  end;

procedure PathRemoveArgs(pszPath: String); external 'PathRemoveArgs{#A}@shlwapi.dll stdcall';

////////////////////////////////////////
function argv(szCLine: String): CMDLINE;
begin
  PathRemoveArgs(szCLine);
  StringChangeEx(szCLine, #0, #13#10, True);
  with TStringList.Create do
  try
    Text := szCLine;
    if Count > 0 then Result.szProg := Strings[0];
    if Count > 1 then Result.szParams := Strings[1];
  finally
    Free;
  end;
end;

/////////////////////////////
procedure InitializeWizard();
var
  szCLine: String;
  cl: CMDLINE;
begin
  szCLine := '"C:\Windows\Inst aller\SandboxieInstall64.exe" /remove /fdfdfg -gggg "ghfhg fhg" 123';
  cl := argv(szCLine);
  MsgBox(Format('Program: %s'#13#10'Command Line: %s', [cl.szProg, cl.szParams]), mbInformation, MB_OK);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:50, 18-04-2014 | #462


Аватара для ROMKA-1977

Пользователь


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

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


Подскажите как в ISDone правильно указать пароль архива FreeArc ? Делаю как показанно в инструкции но во время распаковки вылетает ошибка:
Произошла ошибка при распаковке: Неверный пароль!
Unarc.dll вернул код ошибки: -13
ERROR: wrong password
Пароль указал тот же что и при архивации.
Пример:
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-1.arc'), ExpandConstant('{app}\'), '', false, '1234', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;

Отправлено: 18:27, 18-04-2014 | #463


Аватара для audiofeel

Пользователь


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

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


ROMKA-1977, Unarc.dll от фри арка ( тем чем сжимаеш) замени на тот что в скрипте
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:49, 18-04-2014 | #464


Аватара для Shift85

Старожил


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

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


ROMKA-1977, Пакуй так:

Код: Выделить весь код
start /wait arc.exe a -ep1 -dses --dirs -s; -lc- -di -i2 -r -p1234 -m=lzma:a1:mfbt4:d128m:fb128:mc1000:lc8 data\data-1.arc packeddata\*
Распаковка так:

Код: Выделить весь код
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.arc'), ExpandConstant('{app}'), '', false, '1234', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
Все необходимое:http://rghost.ru/54360629
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:50, 18-04-2014 | #465


Аватара для Stealthmax

Новый участник


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

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


Цитата Nordek:
У NSIS "/S" и в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall есть такое как Sandboxie, но к Inno это отношения вообще не имеет.
У Inno "/SILENT" а в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall к Sandboxie дописывается хвост "_is1". »
Ну то понятно, я делал репак программы, и нужна была проверка не предмет оригинальной установки и, допустим, наличие установки на базе Inno, так вот с Inno как раз проблем никаких, даже при обработке моего ключа для удаления в реестре вида:
Код: Выделить весь код
RegWriteStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1','UninstallString', ExpandConstant('{app}\{#UninstallExeName} /VERYSILENT /NORESTART /SUPPRESSMSGBOXES'));
, а с оригинальным установщиком возникла трабла, вот и всего-то. Но ещё раз спасибо всем, кто не прошел мимо и активно оказал содействие.
Нашел код для определения локали в таком формате 1049 и добавил в свой код при деинсталляции:
Код: Выделить весь код
type
LCID = LongInt;

function GetSystemDefaultLCID() : LCID; external 'GetSystemDefaultLCID@kernel32.dll stdcall';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
  ResultCode: Integer;
begin 
  if CurUninstallStep=usUninstall then
  begin
    Exec(ExpandConstant('{app}\KmdUtil.exe'),ExpandConstant(' /lang=LCID stop SbieSvc'),'',SW_HIDE,ewWaitUntilTerminated,ResultCode);
    Exec(ExpandConstant('{app}\KmdUtil.exe'),ExpandConstant(' /lang=LCID delete SbieSvc'),'',SW_HIDE,ewWaitUntilTerminated,ResultCode);
    Exec(ExpandConstant('{app}\KmdUtil.exe'),ExpandConstant(' /lang=LCID stop SbieDrv'),'',SW_HIDE,ewWaitUntilTerminated,ResultCode);
    Exec(ExpandConstant('{app}\KmdUtil.exe'),ExpandConstant(' /lang=LCID delete SbieDrv'),'',SW_HIDE,ewWaitUntilTerminated,ResultCode);    
end;
end;
Суть сводится к тому, что не требуется перезагрузка при удалении драйвера, в штатном комплекте Sandboxie идет исполняемый модуль для установки/удаления службы и драйвера, пробовал использовать sc.exe для подобного, но требуется в итоге перезагрузка. Данный вариант зарекомендовал себя отлично, т.е. прогнал 3 раза переустановку смешанную туда-сюда, все работает. Вопрос такой: правильно ли я употребил WinAPI в данном контексте? У разработчика выглядит так: {tmp}\KmdUtil.exe /lang=1049 stop SbieDrv применимо для русской локали.

Последний раз редактировалось Stealthmax, 19-04-2014 в 08:58.


Отправлено: 04:39, 19-04-2014 | #466


Аватара для Dinvin4ester

Старожил


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

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


Ребята как сделать процентный прогресс бар ?

Отправлено: 09:20, 19-04-2014 | #467


Аватара для audiofeel

Пользователь


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

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


Цитата Dinvin4ester:
Ребята как сделать процентный прогресс бар ? »
читать дальше »

[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program

[Files]
Source: files\*; DestDir: {app}; AfterInstall: ExtLog(); Flags: recursesubdirs

[code]
var
ProgressLabel: TLabel;

procedure ExtLog();
begin
with WizardForm.ProgressGauge do begin
ProgressLabel.Caption:=IntToStr((Position-Min)/((Max - Min)/100)) + '%'
if (Position-Min)/((Max - Min)/100) > 50 then ProgressLabel.Font.Color:= clWhite
end
end;

procedure InitializeWizard;
begin
ProgressLabel:=TLabel.Create(WizardForm)
ProgressLabel.Top:= 4
ProgressLabel.Left:= 200
ProgressLabel.Caption:= '0%'
ProgressLabel.AutoSize:= True
ProgressLabel.Font.Color:= clBlue
ProgressLabel.Font.Style:= [fsBold]
ProgressLabel.Transparent:= True
ProgressLabel.Parent:= WizardForm.ProgressGauge
end;


НЕ ??

Отправлено: 14:44, 19-04-2014 | #468


Аватара для Dodakaedr

Ветеран


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

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


Можно свои ключи для командной строки придумать в Inno?

-------
Inno Setup 5 Ultra Unicode


Отправлено: 17:08, 19-04-2014 | #469


Аватара для Stealthmax

Новый участник


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

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


Цитата Dodakaedr:
Можно свои ключи для командной строки придумать в Inno? »
Частично, вот примеры: 1, 2, 3. По аналогии можно и другие ключи делать, поищи на форуме, а также в справке есть.

Последний раз редактировалось Stealthmax, 19-04-2014 в 17:43.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:28, 19-04-2014 | #470



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34




 
Переход