Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

Аватара для 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] - Скачать;


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

Отправлено: 19:06, 28-03-2013

 

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


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

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


Цитата Noname22:
P.S Вы хоть оригинальный файл скрипта сохранили на всякий случай? »
А Вы вовремя.... я опытный экспериментатор... у меня резервы даже в разных источниках хранятся (диски, флешки, сеть)

Проблема решилась кодировкой ANCI и выбором в винде языка системы "русский"

Отправлено: 15:55, 29-07-2013 | #911



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

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


Забанен


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

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


Цитата mat_y@vk:
я опытный экспериментатор... »
Я на это и надеялся!
Цитата mat_y@vk:
Проблема решилась кодировкой ANCI и выбором в винде языка системы "русский" »
На всё, все способы хороши!

Отправлено: 16:07, 29-07-2013 | #912


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


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

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


Думаю, что проблема простая, но туплю жестко.
Простая установка программы с выбором компонентов.
Компоненты работают, но проблема вот в чем:
После установки в папке с прогой оказываются файлы компонентов.
Т.е. если я выбираю компонент, то он ставится (myapp.exe), но в папку копируются все компоненты (myapp, 1.exe, myapp, 2.exe).

Понял, что строка, которая рекурсивно описывает все папки и файлы является виновником моей проблемы.
Т.е. если я удалю строку:

Код: Выделить весь код
[Files]
Source: E:\tmp\app\*;  DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
то все работает как надо (естественно непрописаные файлы не копируются).
Похоже надо, чтобы в скрипте был прописан КАЖДЫЙ файл, но их там больше тысячи - руками я замучаюсь.
Как автоматически сделать список ВСЕГО, что есть в сходной папке ?

Отправлено: 21:29, 29-07-2013 | #913


Ветеран


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

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


Цитата alex barmalei:
Как автоматически сделать список ВСЕГО, что есть в сходной папке ? »
Компилятор делает этом сам. И условие для установки каждого компонента все равно придется описывать вручную. Конечно, когда компонентов много, это муторно, но иначе никак. Ну и, нет нужды описывать каждый файл индивидуально. Если компонент состоит из группы файлов, достаточно предварительно раскидать их по каталогам и при компиляции брать оттуда по маске с указателем на компонент.

Отправлено: 22:39, 29-07-2013 | #914


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


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

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


saurn, хоть успокоил на счет списка

Обычных файлов дофига, компонентов немного.
Вот как выглядит

Код: Выделить весь код
[Files]
Source: E:\tmp\app\readme, rus.txt; DestDir: {app}; Flags: ignoreversion external;  DestName: "readme.txt"; Components: lang\rus;
Source: E:\tmp\app\readme, eng.txt; DestDir: {app}; Flags: ignoreversion external;  DestName: "readme.txt"; Components: lang\eng;

[Types]
Name: full; Description: Full installation; Flags: iscustom;

[Components]
Name: "lang"; Description: Мануал; Types: full; Flags: fixed;
Name: "lang\rus"; Description: "Русский";  Flags: exclusive; 
Name: "lang\eng"; Description: "English";  Flags: exclusive;
При выборе определенного компонента он ставится, но вместе с ним копируются и исходные, которые копироваться не должны. Может у меня во флагах косяк?

Отправлено: 22:47, 29-07-2013 | #915


Старожил


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

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


alex barmalei
читать дальше »
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Types]
Name: full; Description: Full installation; Flags: iscustom;

[Components]
Name: "lang"; Description: Мануал; Types: full; Flags: fixed;
Name: "lang\rus"; Description: "Русский"; Flags: exclusive;
Name: "lang\eng"; Description: "English"; Flags: exclusive;

[Files]
Source: rus.txt; DestDir: {app}; DestName: "readme.txt"; Components: lang\rus;
Source: eng.txt; DestDir: {app}; DestName: "readme.txt"; Components: lang\eng;
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:59, 29-07-2013 | #916


Ветеран


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

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


alex barmalei, с флагами все нормально, кроме флага external, если планируете его использовать, то путь к устанвливаемым файлам нужно указывать не абсолютный, а через константу, например Source: {src}\tmp\app\readme, rus.txt;, где {src} корневая папка инстала. Что касается установки других фалов вместе с выбранными компонентами, то, могу лишь предположить, что ниже в секции файлов имеется строка, которая берет файлы из тойже папки по маске, если да, то она и переписывает условия описаные выше. В данном случае, как я и говорил, нужно раскидывать файлы по каталогам, или использовать параметр Excludes, например Source: app\*; Exludes: rus.txt, eng.txt; DestDir: {app}; Flags: ignoreversion;, но этот параметр не комбинируется с флагом external.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:19, 29-07-2013 | #917


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


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

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


Цитата Gnom_aka_Lexander:
либо ищи адрес, откуда он грузится, либо загрузи его на свой сервер и качай itDownloader-ом оттуда. »
Сам адрес-то и прописан в CompileCode.bin, так что узнать его невозможно.

Цитата Gnom_aka_Lexander:
раз родным инсталлятором он устанавливается по тихому, то логично предположить, что у него есть ключи тихой установки. про эти ключи можно почитать на сайте oszone.net в разделе справки про автоматическую установку Windows. »
Как раз-таки родным и не тихо он устанавливается, это мне надо сделать тихую установку

В общем я уже понял, что то, что я задумал, неосуществимо, тогда еще есть такой вопросик: ключи /silent не работают при подключенном интернете (установка заканчивается не начавшись), а при выключенном работают. Это связано с тем, что в процессе установки докачивается файлик. Так вот, можно ли это исправить?

Спасибо за внимаение!

Отправлено: 23:20, 29-07-2013 | #918


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


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

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


saurn, ок, будут проверять.
А Excludes с абсолютными путями работает?

Отправлено: 00:07, 30-07-2013 | #919


Аватара для Johny777

Ветеран


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

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


jiumx60rus, Если я правильно понимаю тебе нужно скачать инсталл из интернета и тихо установить.
Вопросъ: Нафига тебе далась эта библиотека itdownload.dll ? Ведь фиг знает что там внутри
_ В шапке функция скачивания El Sanchez-а, ""Загрузка файла из Интернет"" http://forum.oszone.net/post-1930003-232.html
_ Вот её обновлённая/доработанная версия http://forum.oszone.net/post-2149513-443.html
_ До кучи ещё простая функция скачивания файла без каллбэка function DownloadFile(const URL, FileName: String): Boolean; http://forum.oszone.net/post-2099033-1730.html
=================
касательно тихой установки вот тебе код. Сделал так чтоб можно было тихо и обычно установить.
Чтоб была тихая установка запускаешь инсталл с параметром ком строки из под константы VERY_SILIENT_PARAM. Можешь свой параметр придумать, если хочешь

читать дальше »
Код: Выделить весь код
#define A = (Defined UNICODE) ? "W" : "A"

const
    GCL_STYLE = -26;
    CS_NOCLOSE = $200;
    WM_LBUTTONDOWN = $0201;
    WM_LBUTTONUP = $0202;
    
    VERY_SILIENT_PARAM = '-!VerySilient!';


var
    VerySilient: Boolean;


function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL; external 'ShowWindow@User32.dll stdcall';
function SetClassLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): DWORD; external 'SetClassLong{#A}@User32.dll stdcall';
function GetClassLong(hWnd: HWND; nIndex: Integer): DWORD; external 'GetClassLong{#A}@User32.dll stdcall';


procedure InitializeWizard();
begin
    VerySilient := Pos(VERY_SILIENT_PARAM, GetCmdTail) <> 0;
    if VerySilient then
    begin
        ShowWindow(Application.Handle, SW_HIDE); // прячем кнопку в панели задач
        SetClassLong(WizardForm.Handle, GCL_STYLE, GetClassLong(WizardForm.Handle, GCL_STYLE) or CS_NOCLOSE); // без Alt+F4

        // прячем форму
        WizardForm.BorderStyle := bsNone;
        WizardForm.SetBounds(Screen.Width-777, Screen.Height-777, 0, 0);
    end;
end;




procedure CurPageChanged(CurPageID: Integer);
begin
    if CurPageID = wpReady then if VerySilient then
    begin
        PostMessage(WizardForm.NextButton.Handle, WM_LBUTTONDOWN, 0, 0);
        PostMessage(WizardForm.NextButton.Handle, WM_LBUTTONUP, 0, 0);
    end;
end;


function ShouldSkipPage(PageID: Integer): Boolean;
begin
    case PageID of
        wpWelcome, wpSelectDir, wpFinished {, другие твои страницы}: Result := VerySilient;
    end;
end;


procedure DeinitializeSetup();
begin
    /MsgBox('Installed', mbInformation, MB_OK);
end;

Последний раз редактировалось Johny777, 30-07-2013 в 03:53. Причина: добавил твёрдый знак к слову "Вопрос" :)

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

Отправлено: 03:03, 30-07-2013 | #920



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход